Usuario:ManuelRomero/ProgramacionWeb/php/POO/ejercicios
De WikiEducator
< Usuario:ManuelRomero | ProgramacionWeb/php | POO
Revisión a fecha de 12:16 6 dic 2016; ManuelRomero (Discusión | contribuciones)
Saltar a: navegación, buscar
BLOQUE 2 PHP: PROGRAMACIÓN ORIENTADO A OBJETOS
¡Construyendo componentes!
PHP Como lenguaje orientado a objetos
|
<html> <head> <title>Pruebas</title> </head> <body> <?php class Empleado { private $nombre; private $sueldo; public function asigna($nom,$sue) { $this->nombre=$nom; $this->sueldo=$sue; } public function pagaImpuestos() { echo $this->nombre; echo '-'; if ($this->sueldo>3000) echo 'Debe pagar impuestos'; else echo 'No paga impuestos'; echo '<br>'; } } $empleado1=new Empleado(); $empleado1->inicializar('Luis',2500); $empleado1->pagaImpuestos(); $empleado1=new Empleado(); $empleado1->inicializar('Carla',4300); $empleado1->pagaImpuestos(); ?> </body> </html>
<html> <head> <title>Pruebas</title> </head> <body> <?php class Menu { private $enlaces=array(); private $titulos=array(); public function cargarOpcion($en,$tit) { $this->enlaces[]=$en; $this->titulos[]=$tit; } public function mostrarHorizontal() { for($f=0;$f<count($this->enlaces);$f++) { echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>'; echo "-"; } } public function mostrarVertical() { for($f=0;$f<count($this->enlaces);$f++) { echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>'; echo "<br>"; } } } $menu1=new Menu(); $menu1->cargarOpcion('http://www.google.com','Google'); $menu1->cargarOpcion('http://www.yahoo.com','Yhahoo'); $menu1->cargarOpcion('http://www.msn.com','MSN'); $menu1->mostrarVertical(); ?> </body> </html>
<?php class racional { //put your code here private $numRacional; public function __construct($cadena) { $this->numRacional = $cadena; } public function __toString()(){ return $this->numRacional; } } $a=new racional("8/5"); $b=new racional("6/4"); echo "<br>valor de \$a: $a <br />"; echo "<br>valor de \$b: $b"; ?>
Siguiendo el ejemplo establecido anteriormente realiza un constructor que permita instanciar un objeto de la clase racional de la siguiente manera $a = new racional ("8/5");/* 8/5 */ $b = new racional (5,4); /* 5/6 */ $c = new racional (5); /* 5/1 */ $d = new racional (); /* 1/1 */
|
Gestión de personal de un ambulatorio
Siguiendo el ejemplo planteado en el apartado de herencia, implementamos las clases
- Clase PersonalAmbulatorio
<?php /** * Description of personalAmbulatorio * @author manuel */ class PersonalAmbulatorio { //put your code here protected $nombre; protected $apellido; protected $direccion; protected $edad; public function __construct($n,$a, $d,$e){ $this->nombre = $n; $this->apellido=$a; $this->direccion=$d; $this->edad=$e; } public function hacerTurno($turno){ return "turno de esta semana es $turno<br />"; } public function hacerIncidencia($msg){ $incidencia ="Persona que crea incidencia $this->apellido, $this->nombre <br />"; $incidencia .="incidencia creada con fecha ".date("d-m-y", time())."<hr />"; $incidencia .="<strong>$msg</strong>"; } }
- Clase Medica
<?php /** * Description of Medica * @author manuel */ class Medica extends PersonalAmbulatorio { //put your code here private $especialidad; private $visitas = []; private $consultas = []; public function __construct($n, $a, $d, $e, $esp) { parent::__construct($n, $a, $d,$e); $this->especialidad = $esp; } /* public function pasarConsulta($enfermera, $mensaje) { $msj = "<div style=margin-left:5em> Fecha : " . date("d-m-y", time()) . "</div>"; $msj.="<div style=margin-left:5em>Enfermera $enfermera</div>"; $msj.="<div style=margin-left:5em>Tipo de consulta " . $mensaje ."</div>"; $this->consultas[] =$msj; } * */ public function pasarConsulta($enfermera, $mensaje) { $msj = "Fecha : " . date("d-m-y H:i:s", time()) ; $msj.=". Enfermero/a : $enfermera"; $msj.=". Tipo de consulta <strong>" . $mensaje."</strong>" ; $this->consultas[] =$msj; } public function realizarVisita($ordenante, $aviso) { $msj = "Fecha : " . date("d-m-y H:i:s", time()) . ""; $msj.=". Envía <strong> $ordenante</strong>"; $msj.=". Aviso: <strong>$aviso</strong>"; $this->visitas[] = $msj; } public function __toString() { $msj = "<div class='medico'> Medico : <strong>$this->apellido, $this->nombre</strong> de $this->edad años de edad"; $msj.=". Especialidad <strong>$this->especialidad</strong>"; $msj.="<div class='tituloAcciones'>Consultas realizadas " . count($this->consultas) . " consultas :</div>"; $msj.="<div class='contenidoAcciones'>"; foreach ($this->consultas as $num => $consulta) { $msj.="Consulta $num: "; $msj.= "$consulta<br />"; } $msj.="</div>"; $msj.="<div class='tituloAcciones'>Visitas realizadas : " . count($this->visitas) . " visitas.</div>"; $msj.="<div class='contenidoAcciones'>"; foreach ($this->visitas as $num => $visita) { $msj.=" Visita $num: "; $msj.= " $visita <br />"; } $msj.="</div>" ; $msj.="</div>" ; return $msj; } }
- Clase Enfermera
class Enfermera extends PersonalAmbulatorio { //put your code here private $anyoTitulacion; private $curas=[]; public function __construct($n, $a, $d, $e, $aT){ parent::__construct($n,$a,$d,$e); $this->anyoTitulacion=$aT; } public function avisoMedico(Medica $medico, $mensaje){ $medico->pasarConsulta($this->apellido, $mensaje, 1); } public function hacerCura($ordenante, $tipoCura){ $msj="Fecha : ".date("d-m-y", time())."<br/>"; $msj.="Ordenante $ordenante<br />"; $msj.="Tipo de cura $cura <hr />"; $this->curas[]=$msj; } }
- Clase Conserje
class Conserje extends PersonalAmbulatorio { //put your code here private $ubicacion; public function __construct($n, $a, $d, $e, $u){ parent::__construct($n,$a,$d); $this->ubicacion=$u; } public function avisoMedico(Medica $medico, $mensaje,$tipoAviso){ if ($tipoAviso=="Consulta") $medico->pasarConsulta($this->apellido, $mensaje, 2); if ($tipoAviso =="Visita") $medico->realizarVisita($this->apellido, $mensaje); } public function avisoEnfermera(Enfermera $enfermera, $mensaje){ $enfermera->hacerCura($this->apellido, $mensaje); } }