SlideShare una empresa de Scribd logo
1 de 13
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
1.Conceptos básicos: Clases,Objetos,Herencia,UML
Unidad VI y VII
Herencia y Polimorfismo
Objetivo de la Unidad:
Desarrollar los conceptos y fundamentos de la programación orientada a objetos a través de la técnica de
herencia y polimorfismo entre clases y objetos
Practica a Realizar en el Laboratorio
Realiza la siguiente practica en tu computador. Crea una carpeta raíz en el servidor local con el nombre de
herencia, dentro de esta las carpetas css, img, modelo,vista y controlador.
La página principal contiene la siguiente vista
Introducción
El concepto de herencia nos permite crear una nueva clase que esté basada en otra clase ya existente. Esto
nos sirve cuando nos damos cuenta de que precisamos una nueva clase que posea métodos o propiedades
muy semejantes a los de otra clase ya definida. E n vez de declarar dos veces lo mismo, simplemente
“extendemos” la clase primera, como si creáramos un duplicado de ésta, y tendremos una clase “hija”. Luego a
ese duplicado le podemos agregar algunas otras propiedades y/o métodos propios de esa clase hija y no de la
original, es decir, especializamos un poco más sus funcionalidades. La nueva clase va a poder acceder a sus
propios métodos y propiedades, pero también a los de su clase “padre” que hayan sido declarados como
protected o como public (pero no podrá acceder a los que hayan sido declarados como private).
Se denomina herencia a la capacidad de una clase de emplear todos los métodos y propiedades de otra clase,
lo cual se consigue en PHP mediante la palabra reservada extends.
Objetivo.
Aprender a codificar la Herencia en PHP
Requerimientos.
Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre ( Canaima/Ubuntu),Apache,
PHP, Editor de Texto.
Componentes.
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Código del archivo index.php
Código de la vista principal.php archivo en la carpeta vista
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Código de la clase padre Persona archivo persona.php en la carpeta modelo
Código de la clase hija Docente archivo docente.php en la carpeta modelo
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Código de la vista del docente.php en la carpeta vista
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Código del controlador docente.php en la carpeta controlador
Código de mostrardocente.php en la carpeta vista
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Al ejecutar la opción docente se visualiza el formulario de entrada de datos de un docente
Al dar clic al botón Registrar Docente se presenta la vista mostrar los datos registrados en el formulario
Te invito a desarrollar la clase estudiante que herede de la clase persona: La clase estudiante debe indicar
sección. Cohorte, lapso, índice de nota.
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
2.- Dado el siguiente Diagrama de Clase realizar en tu computador la siguiente practica
Crea una carpeta en llamada Practica Herencia, y luego crea las carpetas Modelo,Vista,Controlador en la
carpeta Modelo crea el script llamado clasepersona.php
<?php
class Persona {
private $cedula;
private $nombre;
private $sexo;
private $direccion;
public function __construct($ci,$nombre,$sexo,$dir)
{
$this->cedula = $ci;
$this->nombre = $nombre;
$this->sexo = $sexo;
$this->direccion = $dir;
}// fin del constructor
public function getCedula(){
return $this->cedula;
Persona
-cedula:String
-nombre:String
-sexo:String
-direccion:String
CtaBancaria
-NroCta:String
-titular:Persona
-FechaApertura:fecha
#SaldoDispo:Float
+depositar(monto)
+retirar(monto)
CtAhorro
-interes:float
+CalcularInteres()
CtaCorriente
+Solicitarchequera()
+EmitirCheque()
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
}
public function getNombre(){
return $this->nombre;
}
public function __toString(){
return $this->nombre . ' ' .$this->cedula;
}
}// fin de la clase
?>
Luego el segundo script llamado ClaseCtaBanco.php
<?php
require_once 'clasepersona.php';
class CtaBancaria {
private $nroCta;
private $titular;
private $fechaApertura;
protected $saldoDispo;
public function __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo)
{
$this->nroCta = $nrocta;
$this->titular = new Persona($ci,$nombre,$sexo,$dir);
$this->fechaApertura = $fecha;
$this->saldoDispo = $saldo;
}// fin del costructor
public function depositar($monto){
$this->saldoDispo += $monto;
}// fin metodo depositar
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
public function retirar($monto){
$this->saldoDispo -= $monto;
}// metodo retirar
public function __toString(){
return ' Titular '.$this->titular-> __toString() . ' Nro de Cta '.$this->nroCta. ' Saldo Disponibe '.$this-
>saldoDispo;
}// fin de ToString
public function getSaldoDispo(){
return $this->saldoDispo ;
} // fin del metodo obtener el saldo disponible
}// fin de la clase
?>
En la carpeta controlador crear el sript controlador.php
<?php
require_once '../Modelo/claseCtaBanco.php';
$nrocta= "28905";
$ci ="10956121";
$nombre = "Lissette Mujica";
$sexo = "F";
$dir = "Quibor";
$fecha= "10/04/2006";
$saldo = 2000000;
$monto= 1500000;
$objcta = new CtaBancaria($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo);
echo "****************************Registro************************";
echo $objcta;
echo "<br>";
echo "****************************Deposito****************************";
echo "<br>";
$objcta->depositar(5000000);
echo $objcta;
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
echo "<br>";
echo "****************************Retiro****************************";
echo "<br>";
if ($monto <= $objcta->getSaldoDispo()){
$objcta->retirar($monto);
}
else {echo "error no dispone de saldo suficiente";
}
echo $objcta;
?>
Luego ejecutar el script en el navegador
2da practica herencia
Crear la carpeta Modelo el script clasectahorro.php
<?php
require_once '../Modelo/claseCtaBanco.php';
class CtAhorro extends CtaBancaria {
private $interes;
const tasa = 0.05;
public function __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo)
{
parent:: __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo);
$this-> interes= 0.0;
}// fin del constructor
public function CalcularInteres(){
$this-> interes = $this->saldoDispo * (self::tasa);
$this->saldoDispo= $this->saldoDispo+ $this-> interes;
Self, hace referencia a
la constantes .
No está permitido
$this->constante
La palabra clave parent, hace referencia a
la clase de la cual se está heredando.
Al usar parent::metodo(), se llama a la
función que se sobrescribio
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
}// fin de Metodo Calcular el interes
public function __toString(){
return ' Datos de La Cuenta de Ahorro '. parent::__toString().' Interes Mensual '. $this-> interes;
}// fin metodo toString
public function MostrarCta(){
}// fin del metodo Mostrar datos de la Cuenta
}// fin de la clase
?>
Luego en la carpeta Controlador controlHerencia.php
<?php
require_once './Modelo/clasectahorro.php';
$nrocta= "28905";
$ci ="10956121";
$nombre = "Lissette Mujica";
$sexo = "F";
$dir = "Quibor";
$fecha= "10/04/2006";
$saldo = 2000000;
$monto = 1500000;
$objcta_ahorro = new CtAhorro($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo);
echo "****************************Registro************************";
echo "<br>";
echo $objcta_ahorro;
echo "<br>";
echo "****************************Deposito****************************";
echo "<br>";
$objcta_ahorro->depositar(5000000);
echo $objcta_ahorro;
echo "<br>";
echo "*****************************Retiro******************************";
¡Y funciona! ;-)
La explicación es que, a
diferencia que el
constructor, el
toString se hereda
porque es público
pero este se ejecuta
de forma automática,
sin necesidad de
explicitar como en el
anterior caso
(constructor).
Aquí es donde
deberíamos entender
que el principio de
ocultación refuerza los
diseños al ocultar y
cerrar el acceso a
detalles internos, pero
no por eso nos impide
poder aprovechar las
implementaciones
realizadas.
El método debe devolver un
string, se llama solo cuando
se combina directamente
con echo o print, es un
método mágico
Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
echo "<br>";
if ($monto <= $objcta_ahorro->getSaldoDispo()){
$objcta_ahorro->retirar($monto);
}
else {echo "error no dispone de saldo suficiente";
}
$objcta_ahorro->CalcularInteres();
echo $objcta_ahorro;
?>
Actividad a Realizar
1.- Crear las vistas para cada práctica y asícumplir con el patrón Modelo Vista Controlador
2.- Crear una abstracción de herencia de clases de tu sistema propuesto en la U.C. PSTII
Referencias Bibliográficas
Un sitio clave para quienes programamos en PHP orientado a objetos es PHPClasses:
http://www.phpclasses.org

Más contenido relacionado

La actualidad más candente

Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controladorlissette_torrealba
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevjtk1
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)KareliaRivas
 
Curso Java Inicial 8 Conceptos Avanzados Applets
Curso Java Inicial   8 Conceptos Avanzados   AppletsCurso Java Inicial   8 Conceptos Avanzados   Applets
Curso Java Inicial 8 Conceptos Avanzados AppletsEmilio Aviles Avila
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Curso Java Inicial 8 Conceptos Avanzados I O
Curso Java Inicial   8 Conceptos Avanzados   I OCurso Java Inicial   8 Conceptos Avanzados   I O
Curso Java Inicial 8 Conceptos Avanzados I OEmilio Aviles Avila
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 

La actualidad más candente (18)

Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controlador
 
Programacion en C#
Programacion en C#Programacion en C#
Programacion en C#
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 
Diapositivas de la poo
Diapositivas de la pooDiapositivas de la poo
Diapositivas de la poo
 
POO
POOPOO
POO
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)
 
Curso Java Inicial 8 Conceptos Avanzados Applets
Curso Java Inicial   8 Conceptos Avanzados   AppletsCurso Java Inicial   8 Conceptos Avanzados   Applets
Curso Java Inicial 8 Conceptos Avanzados Applets
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Java
JavaJava
Java
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Curso Java Inicial 8 Conceptos Avanzados I O
Curso Java Inicial   8 Conceptos Avanzados   I OCurso Java Inicial   8 Conceptos Avanzados   I O
Curso Java Inicial 8 Conceptos Avanzados I O
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 

Similar a Guía práctica Herencia

Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en phpRobert Moreira
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netpp mm
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxssuser2e6b96
 
Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpSamuel Piñon Garcia
 
Actividad 3 . funciones en php
Actividad 3 . funciones en phpActividad 3 . funciones en php
Actividad 3 . funciones en phpLeonardoPuerta2
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ecSilvana Vargas
 
Caracteristicas generales de PHP
Caracteristicas generales de PHPCaracteristicas generales de PHP
Caracteristicas generales de PHPMiguel Pinto
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Curso php dia6
Curso php dia6Curso php dia6
Curso php dia6cognos_uie
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 

Similar a Guía práctica Herencia (20)

Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
 
Adentrándonos a PHP 5
Adentrándonos a PHP 5Adentrándonos a PHP 5
Adentrándonos a PHP 5
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en php
 
5poo
5poo5poo
5poo
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Actividad 3 . funciones en php
Actividad 3 . funciones en phpActividad 3 . funciones en php
Actividad 3 . funciones en php
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 
Caracteristicas generales de PHP
Caracteristicas generales de PHPCaracteristicas generales de PHP
Caracteristicas generales de PHP
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Curso php dia6
Curso php dia6Curso php dia6
Curso php dia6
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 

Más de lissette_torrealba (20)

Guia reportes
Guia reportesGuia reportes
Guia reportes
 
Guiajquery
GuiajqueryGuiajquery
Guiajquery
 
Plan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoríaPlan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoría
 
Plan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodologíaPlan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodología
 
Plan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 prácticaPlan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 práctica
 
Guiajsvalidacion
GuiajsvalidacionGuiajsvalidacion
Guiajsvalidacion
 
Guiajs2
Guiajs2Guiajs2
Guiajs2
 
Rubrica 2021 electiva 2
Rubrica 2021 electiva 2Rubrica 2021 electiva 2
Rubrica 2021 electiva 2
 
Mapa Tecnopedagogia
Mapa TecnopedagogiaMapa Tecnopedagogia
Mapa Tecnopedagogia
 
Matriz DOFA lissette
Matriz DOFA lissetteMatriz DOFA lissette
Matriz DOFA lissette
 
Planevaluacionproyectoivpractica
PlanevaluacionproyectoivpracticaPlanevaluacionproyectoivpractica
Planevaluacionproyectoivpractica
 
Rubrica bd 2021
Rubrica  bd  2021Rubrica  bd  2021
Rubrica bd 2021
 
Proyecto formativo iv metodologia
Proyecto formativo iv metodologiaProyecto formativo iv metodologia
Proyecto formativo iv metodologia
 
Plan evaluacion teoria
Plan evaluacion teoriaPlan evaluacion teoria
Plan evaluacion teoria
 
Plan de Evaluacion
Plan de EvaluacionPlan de Evaluacion
Plan de Evaluacion
 
Ejemplos de interfaz grafica
Ejemplos de  interfaz grafica Ejemplos de  interfaz grafica
Ejemplos de interfaz grafica
 
Rubrica bd 2021
Rubrica bd 2021 Rubrica bd 2021
Rubrica bd 2021
 
Rubrica Programación II 2021
Rubrica Programación II 2021 Rubrica Programación II 2021
Rubrica Programación II 2021
 
Rup
RupRup
Rup
 
Documentosistema
DocumentosistemaDocumentosistema
Documentosistema
 

Último

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 

Último (20)

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 

Guía práctica Herencia

  • 1. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 1.Conceptos básicos: Clases,Objetos,Herencia,UML Unidad VI y VII Herencia y Polimorfismo Objetivo de la Unidad: Desarrollar los conceptos y fundamentos de la programación orientada a objetos a través de la técnica de herencia y polimorfismo entre clases y objetos Practica a Realizar en el Laboratorio Realiza la siguiente practica en tu computador. Crea una carpeta raíz en el servidor local con el nombre de herencia, dentro de esta las carpetas css, img, modelo,vista y controlador. La página principal contiene la siguiente vista Introducción El concepto de herencia nos permite crear una nueva clase que esté basada en otra clase ya existente. Esto nos sirve cuando nos damos cuenta de que precisamos una nueva clase que posea métodos o propiedades muy semejantes a los de otra clase ya definida. E n vez de declarar dos veces lo mismo, simplemente “extendemos” la clase primera, como si creáramos un duplicado de ésta, y tendremos una clase “hija”. Luego a ese duplicado le podemos agregar algunas otras propiedades y/o métodos propios de esa clase hija y no de la original, es decir, especializamos un poco más sus funcionalidades. La nueva clase va a poder acceder a sus propios métodos y propiedades, pero también a los de su clase “padre” que hayan sido declarados como protected o como public (pero no podrá acceder a los que hayan sido declarados como private). Se denomina herencia a la capacidad de una clase de emplear todos los métodos y propiedades de otra clase, lo cual se consigue en PHP mediante la palabra reservada extends. Objetivo. Aprender a codificar la Herencia en PHP Requerimientos. Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre ( Canaima/Ubuntu),Apache, PHP, Editor de Texto. Componentes.
  • 2. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba Código del archivo index.php Código de la vista principal.php archivo en la carpeta vista
  • 3. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba Código de la clase padre Persona archivo persona.php en la carpeta modelo Código de la clase hija Docente archivo docente.php en la carpeta modelo
  • 4. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba Código de la vista del docente.php en la carpeta vista
  • 5. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba
  • 6. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba Código del controlador docente.php en la carpeta controlador Código de mostrardocente.php en la carpeta vista
  • 7. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba Al ejecutar la opción docente se visualiza el formulario de entrada de datos de un docente Al dar clic al botón Registrar Docente se presenta la vista mostrar los datos registrados en el formulario Te invito a desarrollar la clase estudiante que herede de la clase persona: La clase estudiante debe indicar sección. Cohorte, lapso, índice de nota.
  • 8. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba 2.- Dado el siguiente Diagrama de Clase realizar en tu computador la siguiente practica Crea una carpeta en llamada Practica Herencia, y luego crea las carpetas Modelo,Vista,Controlador en la carpeta Modelo crea el script llamado clasepersona.php <?php class Persona { private $cedula; private $nombre; private $sexo; private $direccion; public function __construct($ci,$nombre,$sexo,$dir) { $this->cedula = $ci; $this->nombre = $nombre; $this->sexo = $sexo; $this->direccion = $dir; }// fin del constructor public function getCedula(){ return $this->cedula; Persona -cedula:String -nombre:String -sexo:String -direccion:String CtaBancaria -NroCta:String -titular:Persona -FechaApertura:fecha #SaldoDispo:Float +depositar(monto) +retirar(monto) CtAhorro -interes:float +CalcularInteres() CtaCorriente +Solicitarchequera() +EmitirCheque()
  • 9. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba } public function getNombre(){ return $this->nombre; } public function __toString(){ return $this->nombre . ' ' .$this->cedula; } }// fin de la clase ?> Luego el segundo script llamado ClaseCtaBanco.php <?php require_once 'clasepersona.php'; class CtaBancaria { private $nroCta; private $titular; private $fechaApertura; protected $saldoDispo; public function __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo) { $this->nroCta = $nrocta; $this->titular = new Persona($ci,$nombre,$sexo,$dir); $this->fechaApertura = $fecha; $this->saldoDispo = $saldo; }// fin del costructor public function depositar($monto){ $this->saldoDispo += $monto; }// fin metodo depositar
  • 10. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba public function retirar($monto){ $this->saldoDispo -= $monto; }// metodo retirar public function __toString(){ return ' Titular '.$this->titular-> __toString() . ' Nro de Cta '.$this->nroCta. ' Saldo Disponibe '.$this- >saldoDispo; }// fin de ToString public function getSaldoDispo(){ return $this->saldoDispo ; } // fin del metodo obtener el saldo disponible }// fin de la clase ?> En la carpeta controlador crear el sript controlador.php <?php require_once '../Modelo/claseCtaBanco.php'; $nrocta= "28905"; $ci ="10956121"; $nombre = "Lissette Mujica"; $sexo = "F"; $dir = "Quibor"; $fecha= "10/04/2006"; $saldo = 2000000; $monto= 1500000; $objcta = new CtaBancaria($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo); echo "****************************Registro************************"; echo $objcta; echo "<br>"; echo "****************************Deposito****************************"; echo "<br>"; $objcta->depositar(5000000); echo $objcta;
  • 11. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba echo "<br>"; echo "****************************Retiro****************************"; echo "<br>"; if ($monto <= $objcta->getSaldoDispo()){ $objcta->retirar($monto); } else {echo "error no dispone de saldo suficiente"; } echo $objcta; ?> Luego ejecutar el script en el navegador 2da practica herencia Crear la carpeta Modelo el script clasectahorro.php <?php require_once '../Modelo/claseCtaBanco.php'; class CtAhorro extends CtaBancaria { private $interes; const tasa = 0.05; public function __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo) { parent:: __construct($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo); $this-> interes= 0.0; }// fin del constructor public function CalcularInteres(){ $this-> interes = $this->saldoDispo * (self::tasa); $this->saldoDispo= $this->saldoDispo+ $this-> interes; Self, hace referencia a la constantes . No está permitido $this->constante La palabra clave parent, hace referencia a la clase de la cual se está heredando. Al usar parent::metodo(), se llama a la función que se sobrescribio
  • 12. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba }// fin de Metodo Calcular el interes public function __toString(){ return ' Datos de La Cuenta de Ahorro '. parent::__toString().' Interes Mensual '. $this-> interes; }// fin metodo toString public function MostrarCta(){ }// fin del metodo Mostrar datos de la Cuenta }// fin de la clase ?> Luego en la carpeta Controlador controlHerencia.php <?php require_once './Modelo/clasectahorro.php'; $nrocta= "28905"; $ci ="10956121"; $nombre = "Lissette Mujica"; $sexo = "F"; $dir = "Quibor"; $fecha= "10/04/2006"; $saldo = 2000000; $monto = 1500000; $objcta_ahorro = new CtAhorro($nrocta,$ci,$nombre,$sexo,$dir,$fecha,$saldo); echo "****************************Registro************************"; echo "<br>"; echo $objcta_ahorro; echo "<br>"; echo "****************************Deposito****************************"; echo "<br>"; $objcta_ahorro->depositar(5000000); echo $objcta_ahorro; echo "<br>"; echo "*****************************Retiro******************************"; ¡Y funciona! ;-) La explicación es que, a diferencia que el constructor, el toString se hereda porque es público pero este se ejecuta de forma automática, sin necesidad de explicitar como en el anterior caso (constructor). Aquí es donde deberíamos entender que el principio de ocultación refuerza los diseños al ocultar y cerrar el acceso a detalles internos, pero no por eso nos impide poder aprovechar las implementaciones realizadas. El método debe devolver un string, se llama solo cuando se combina directamente con echo o print, es un método mágico
  • 13. Universidad Politécnica Territorial Andrés Eloy Blanco Programa Nacional de Formación en Informática Ing. Lissette Torrealba echo "<br>"; if ($monto <= $objcta_ahorro->getSaldoDispo()){ $objcta_ahorro->retirar($monto); } else {echo "error no dispone de saldo suficiente"; } $objcta_ahorro->CalcularInteres(); echo $objcta_ahorro; ?> Actividad a Realizar 1.- Crear las vistas para cada práctica y asícumplir con el patrón Modelo Vista Controlador 2.- Crear una abstracción de herencia de clases de tu sistema propuesto en la U.C. PSTII Referencias Bibliográficas Un sitio clave para quienes programamos en PHP orientado a objetos es PHPClasses: http://www.phpclasses.org