Diferencia entre revisiones de «ManuelRomero/DAW/distancia/tutorias/Tutoria2»
De WikiEducator
Línea 4: | Línea 4: | ||
<br/> | <br/> | ||
{{Objetivos| | {{Objetivos| | ||
− | ;Se han tratado | + | ;Se han tratado el tema de programación orientado a objetos |
− | # | + | #Concepto básicos |
− | + | #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: |
− | + | #Al crear los componentes software me abstraigo de lo general (de su uso), y me centro en el detalle (en su funcionamiento). | |
− | + | #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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<source lang=php> | <source lang=php> | ||
− | + | class Fecha{ | |
− | + | .... | |
− | + | ||
} | } | ||
− | |||
</source> | </source> | ||
− | + | *Guardar cada clase en un fichero con su propio nombre | |
− | * | + | <source lang=php> |
− | + | Fecha.cpp | |
− | + | ||
− | + | ||
− | <source lang= | + | |
− | + | ||
</source> | </source> | ||
− | * | + | ===PHP como lenguaje orientado a objetos=== |
− | <source lang= | + | *PHP es un lenguaje un poco peculiar como lenguaje orientado a objetos |
− | + | *Bajo mi punto de vista hay dos temas importantes | |
+ | #No tiene sobrecarga tal cual la conocemos | ||
+ | #Tiene métodos mágicos que dan versatilidad aunque al principio despistan | ||
+ | *Atributos y métodos por defecto publicos | ||
+ | <source lang=php> | ||
+ | class Fecha{ | ||
+ | private $dia; | ||
+ | private $mes; | ||
+ | private $year; | ||
+ | } | ||
</source> | </source> | ||
− | *Podemos | + | ;Constructor |
− | <source lang= | + | *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 | |
+ | {{Definicion|'''''métodos mágicio''' son métodos que se ejecutan sin que los invoquemos cuando ocurre determinadas cicunstancias}} | ||
+ | <source lang=php> | ||
+ | __construct(){ | ||
+ | } | ||
</source> | </source> | ||
+ | *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 | |
− | * | + | #Pasando varios atributos con valores por defecto |
− | + | #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 $ | |
− | * | + | |
− | + | ||
− | + | ||
<source lang=php> | <source lang=php> | ||
− | + | 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 | |
− | + | ..... | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | } | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | </source> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | *Concepto de variables/métodos estáticos y constantes | |
− | * | + | *Usar self::... Para acceder a él |
− | + | ||
− | + | ||
− | + | ||
<source lang=php> | <source lang=php> | ||
− | + | 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 | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | *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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + |
Revisión de 06:03 19 dic 2015
|
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:
- Al crear los componentes software me abstraigo de lo general (de su uso), y me centro en el detalle (en su funcionamiento).
- 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
- No tiene sobrecarga tal cual la conocemos
- 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
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
- Pasando varios atributos con valores por defecto
- 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