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 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; //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