Diferencia entre revisiones de «Plantilla:PHP/SintasixPHPOOP»
De WikiEducator
| Línea 153: | Línea 153: | ||
*Los elementos especificado con este modificador de acceso hace que su visibilidad se reduzca al interior de la clase, no pudiendo acceder a ellos desde fuera | *Los elementos especificado con este modificador de acceso hace que su visibilidad se reduzca al interior de la clase, no pudiendo acceder a ellos desde fuera | ||
*En OOP es una tendencia hacer todos los atributos privados y acceder a ellos por los métodos setter and getter. | *En OOP es una tendencia hacer todos los atributos privados y acceder a ellos por los métodos setter and getter. | ||
| + | |||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| Línea 192: | Línea 193: | ||
?> | ?> | ||
</source> | </source> | ||
| + | {{Tip| A un elemento '''''private''''' de una clase, tampoco podrá acceder desde clases que deriven de ésta }} | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
;protected | ;protected | ||
*Este tipo de visibilidad implica que los elementos así especificados solo son accesible por la propia clase y por las clases derivadas | *Este tipo de visibilidad implica que los elementos así especificados solo son accesible por la propia clase y por las clases derivadas | ||
| − | *Para ello hay que ver la herencia que veremos más adelante | + | *Para ello hay que ver la herencia que veremos más adelante dónde propondremos un ejemplo |
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| Línea 230: | Línea 232: | ||
<!--1 --> | <!--1 --> | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
| + | |||
| + | <div class="slide"> | ||
| + | |||
| + | === Declarando obejetos: Operador '''''new'''''=== | ||
| + | *Permite crear instancias de un objeto en memoria. | ||
| + | *Una clase describe lo común de unos determinados objetos, la estructura o composición. | ||
| + | *Las clases en principio no se usan durante la ejecución, salvo si queremos acceder a '''métodos o propiedades estáticas''' como veremos un poco más adelante | ||
| + | *Lo que se usa en los programas son los '''''objetos'''''. | ||
| + | *Para ello debemos ''instanciar'' objetos de las clases | ||
| + | *Esto se hace con el operador '''new''' | ||
| + | *Una vez '''instanciado''' ya tenemos la referencia del objeto y lo podemos utilizar | ||
| + | *hay que pensar que en memoria tenemos '''toda''' la estructura del la clase por cada objeto | ||
| + | [[Archivo:Objetos4.png]] | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ====$this==== | ||
| + | *Accediendo a los atributos de un objeto: seudovariable $this | ||
| + | *$this es una seudovariable que referencia al objeto del ámbito en el cual está usado | ||
| + | *Se utiliza dentro de la definición de la propia clase y hará referencia a un objeto concreto en un momento dado; esto dentro de la clase en la que está siendo utilizado | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ;Ejemplo | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | class MyClase | ||
| + | { | ||
| + | function ser_estar() | ||
| + | { | ||
| + | if (isset($this)) { | ||
| + | echo '$this Ahora soy por que estoy'; | ||
| + | } else { | ||
| + | echo "\$this ni es ni está.\n"; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | *Podemos probar este código de la siguiente manera en un programa principal | ||
| + | <source lang=php> | ||
| + | .... | ||
| + | require "MyClass.php"; | ||
| + | $a = new MyClass(); | ||
| + | $a->ser_estar(); //Invocamos al método de un objeto | ||
| + | |||
| + | MyClass::ser_estar(); //Invocamos al método de manera forzada, sin que exista un objeto concreto | ||
| + | |||
| + | |||
| + | </source> | ||
| + | |||
| + | |||
===Propiedades=== | ===Propiedades=== | ||
*Al igual que en el código estructurado los valores que almaceno en memoria, las propiedades de los objetos pueden ser. | *Al igual que en el código estructurado los valores que almaceno en memoria, las propiedades de los objetos pueden ser. | ||
| Línea 270: | Línea 323: | ||
<div class="slide"> | <div class="slide"> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| Línea 333: | Línea 381: | ||
http://php.net/manual/es/language.oop5.magic.php | http://php.net/manual/es/language.oop5.magic.php | ||
</div> | </div> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<div class="slide"> | <div class="slide"> | ||
{{Actividad| | {{Actividad| | ||
| Línea 485: | Línea 495: | ||
?> | ?> | ||
</source> | </source> | ||
| + | |||
| + | {{Ejemplo| | ||
| + | Creamos la clase factura | ||
| + | *Constantes IVA | ||
| + | *Atributos Importe Base, fecha, impuestos, Importe bruto, estado (pagada o pendiente) | ||
| + | *Métodos: imprime }} | ||
===Sobrecarga=== | ===Sobrecarga=== | ||
| Línea 959: | Línea 975: | ||
Las clases que contengan métodos abstractos no se pueden instanciar en memoria. | Las clases que contengan métodos abstractos no se pueden instanciar en memoria. | ||
===métodos estáticos=== | ===métodos estáticos=== | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
