|
|
Línea 1: |
Línea 1: |
− | | + | =Tutorias DWES curso 2014 - 2015= |
− | {{:Usuario:ManuelRomero/DAW/distancia/tutorias/nav}}
| + | *[[ManuelRomero/DAW/distancia/tutorias/Tutoria2| tutoria_15_dic(3)]] |
− | __NOTOC__
| + | |
− | | + | |
− | <br/>
| + | |
− | {{Objetivos|
| + | |
− | ;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>
| + | |
− | class Fecha{
| + | |
− | ....
| + | |
− | }
| + | |
− | </source>
| + | |
− | *Guardar cada clase en un fichero con su propio nombre
| + | |
− | <source lang=php>
| + | |
− | Fecha.cpp
| + | |
− | </source>
| + | |
− | ===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
| + | |
− | <source lang=php>
| + | |
− | class Fecha{
| + | |
− | private $dia;
| + | |
− | private $mes;
| + | |
− | private $year;
| + | |
− | }
| + | |
− | </source>
| + | |
− | ;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
| + | |
− | {{Definicion|'''''métodos mágicio''' son métodos que se ejecutan sin que los invoquemos cuando ocurre determinadas cicunstancias}}
| + | |
− | <source lang=php>
| + | |
− | __construct(){
| + | |
− | }
| + | |
− | </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>
| + | |
− | 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>
| + | |
− | 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>
| + | |
− | | + | |
− | *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
| + | |