ManuelRomero/DAW/distancia/tutorias/Tutoria2

De WikiEducator
Saltar a: navegación, buscar





Icon objectives.jpg

Objetivos

Se han tratado el tema de programación orientado a objetos
  1. Concepto básicos
  2. Características de la programación orientada a objetos




Programación Orientada a objetos

  • Ver la programación orientada a objetos como una manera más cómoda de programar
  • Creamos componentes software, luego los usamos
  • Usamos la abstracción es sus dos visiones:
  1. Al crear los componentes software me abstraigo de lo general (de su uso), y me centro en el detalle (en su funcionamiento).
  2. Al usarlo en el programa principal me abstraigo del detalle y me centro en su uso

Consejos

  • Los nombres de las clases la primera letra en mayúscula
class Fecha{
....
}
  • Guardar cada clase en un fichero con su propio nombre
Fecha.cpp

PHP como lenguaje orientado a objetos

  • PHP es un lenguaje un poco peculiar como lenguaje orientado a objetos
  • Bajo mi punto de vista hay dos temas importantes
  1. No tiene sobrecarga tal cual la conocemos
  2. Tiene métodos mágicos que dan versatilidad aunque al principio despistan
  • Atributos y métodos por defecto publicos
class Fecha{
   private $dia;
   private $mes;
   private $year;
}
Constructor
  • Podemos poner un método con el nombre de la clase y ese se ejecutaría al instanciar el objeto
  • Tenemos un método mágico


Icon define.gif

Definición

métodos mágicio son métodos que se ejecutan sin que los invoquemos. Se invocan de forma explícita (transparente para el programador, sin que éste los invoque), cuando ocurre determinadas cicunstancias


__construct(){
}
  • Si tenemos un método con el nombre de la clase y el método __construct implementado, solo se ejecutará el método __construct
Sobrecarga
  • La podemos simular de dos maneras
  1. Pasando varios atributos con valores por defecto
  2. usanto el método mágico __call($nameFuncion, $atributos)
Ver el wiki donde está explicada esta parte
Otros aspectos en los que se han incidido
  • Recordad que para acceder a un atributo hay que usar obligatoriamente la seudovariable $this, en este caso el atributo no tiene que llevar $
class Fecha{
   private $dia;
   private $mes;
   private $year;
   public function __construct( $d, $m, $y){
     $this->dia = $d; //mirar bien que dia no lleva $
     $mes = $m; //En este caso $mes es una variable local al método no tiene nada que ver con el atributo $mes de la clase
.....
 
   }
  • Concepto de variables/métodos estáticos y constantes
  • Usar self::... Para acceder a él
class miClase{
   const IVA=0.21; //Constante iva, así se declaran las constantes el oop de php
   public  static $cuentaObjetos; // es un atributo estático
   ....
   public function __contruct(){
      self::$cuentaObjetos ++;//Así accedo a un elemento estático
      echo "Valor de la constante " . self::IVA: //Así accedo a una constante
   }
 
 
 
}
  • Luego hicimos un pequeño ejemplo de una calculadora
  • El enunciado es la práctica del wiki
  • Os dejaré el código para que lo analicéis