Diferencia entre revisiones de «ManuelRomero/DAW/distancia/tutorias/Tutoria2»
De WikiEducator
(→PHP como lenguaje orientado a objetos) |
|||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
− | |||
{{:Usuario:ManuelRomero/DAW/distancia/tutorias/nav}} | {{:Usuario:ManuelRomero/DAW/distancia/tutorias/nav}} | ||
− | + | __NOTOC__ | |
<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. Se invocan de forma explícita (transparente para el programador, sin que éste los invoque), 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=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 | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + |
Última revisión de 06:33 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. 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
- 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=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