Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/OPP»
De WikiEducator
< Usuario:ManuelRomero | PHP
(→Constructor) |
|||
Línea 15: | Línea 15: | ||
*Los '''objetos''' son el elemento básico y central de la programación orientada a objetos (OOP) o (POO) | *Los '''objetos''' son el elemento básico y central de la programación orientada a objetos (OOP) o (POO) | ||
*Podemos hablar de ''universo de discurso'' como el sitema que queremos automatizar por software | *Podemos hablar de ''universo de discurso'' como el sitema que queremos automatizar por software | ||
− | *Un Objeto es una entidad (concreta o abstracta) que presenta una actividad en un entorno concreto, | + | *Un Objeto es una entidad (concreta o abstracta) que presenta una actividad en un entorno concreto, en un determinado universo de discurso. |
− | + | ||
{{Definicion| '''Objeto''' Cada '''elemento activo''' que identificamos dentro de un determinado univeso de discurso}} | {{Definicion| '''Objeto''' Cada '''elemento activo''' que identificamos dentro de un determinado univeso de discurso}} | ||
{{Ejemplo| | {{Ejemplo| | ||
Línea 23: | Línea 22: | ||
:Las cuentas se pueden dar de alta, de baja, hacer extracciones e ingresos y transferencias... '''''metodos''''' | :Las cuentas se pueden dar de alta, de baja, hacer extracciones e ingresos y transferencias... '''''metodos''''' | ||
}} | }} | ||
− | + | Una clase es la estructura de un tipo concreto de objetos. | |
− | Los objetos son elementos concretos en mi sistema | + | Los objetos son elementos concretos en mi sistema. |
− | La estructura común (datos y comportamiento) de los objetos sirven especificar su | + | La estructura común (datos y comportamiento) de los objetos sirven especificar su composición |
− | Esta composición queda descrita y especificada en la clase | + | Esta composición queda descrita y especificada en la clase. |
Una clase tiene dos elementos | Una clase tiene dos elementos | ||
'''''Atributos''''' ==> Son las características o datos de un objeto | '''''Atributos''''' ==> Son las características o datos de un objeto | ||
Su valor nos da el estado de un objeto en un momento dado | Su valor nos da el estado de un objeto en un momento dado | ||
− | Comportamiento==> permiten modificar el estado de un objetos | + | '''''Comportamiento'''''==> permiten modificar el estado de un objetos |
− | + | Permiten saber como es el estado de un objeto | |
− | + | Permiten que un objeto haga cosas en el sistema (comunicación entre objetos) | |
− | + | Son las cosas que el objeto sabe hacer Servicios que ofrece | |
− | + | También lo son acciones internas para facilitar las cosas al objeto | |
[[Archivo:clase.png]] | [[Archivo:clase.png]] | ||
===OPP En php=== | ===OPP En php=== | ||
− | *PHP no se | + | *PHP no se diseñó como lenguaje orientado a objetos, por lo que muchas de las carácterísticas de este paradigma se ha ido incorporando en las últimas versiones, especialemnte a partir de la versión 5.3. |
− | *PHP Almacena el valor de un objeto como una referencia (dirección de memoria), no guarda el valor | + | *PHP Almacena el valor de un objeto como una referencia (dirección de memoria), no guarda el valor. |
− | *Esto implica que si queremos pasar un objeto a través de la red, debemos serializarlo, para que viaje también el valor del mismo. | + | *Esto implica que si queremos pasar un objeto a través de la red, debemos serializarlo, para que viaje también el valor del mismo. Veremos este concepto más adelante. |
*Los elementos de una clase en php se identifican como | *Los elementos de una clase en php se identifican como | ||
− | #propiedades: son los atributos o carácterísticas de la clase | + | #propiedades: son los atributos o carácterísticas de la clase. |
− | #métodos: representas el comportamiento de la misma | + | #métodos: representas el comportamiento de la misma. |
;Definir una clase en php | ;Definir una clase en php | ||
<source lang=php> | <source lang=php> | ||
− | class | + | class NombreClase{ |
//propiedades | //propiedades | ||
//métodos | //métodos | ||
} | } | ||
− | |||
− | |||
</source> | </source> | ||
+ | *'''''NombreClase''''' es un identificador válido con la siguiente expresión regular | ||
+ | ^[a-zA-Z_][a-zA-Z0-9_]*$ | ||
+ | *'''''propiedades''''' son las variables o constantes definidas dentro de la clase. | ||
+ | *'''''métodos''''' son las funciones que definirán el comportamiento de la clase. | ||
+ | ===propiedades=== | ||
+ | |||
+ | ===métodos=== | ||
+ | ===pseudovariables '''''this'''''=== | ||
+ | ===operador '''''self''''' y '''''parent'''''=== | ||
+ | |||
+ | |||
===Instancias: Operador '''''new'''''=== | ===Instancias: Operador '''''new'''''=== | ||
*Una clase describe lo común de unos determinados objetos | *Una clase describe lo común de unos determinados objetos |
Revisión de 08:25 7 dic 2014
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Repaso básico de la programación orientada a objetos
Una clase es la estructura de un tipo concreto de objetos. Los objetos son elementos concretos en mi sistema. La estructura común (datos y comportamiento) de los objetos sirven especificar su composición Esta composición queda descrita y especificada en la clase. Una clase tiene dos elementos Atributos ==> Son las características o datos de un objeto Su valor nos da el estado de un objeto en un momento dado Comportamiento==> permiten modificar el estado de un objetos Permiten saber como es el estado de un objeto Permiten que un objeto haga cosas en el sistema (comunicación entre objetos) Son las cosas que el objeto sabe hacer Servicios que ofrece También lo son acciones internas para facilitar las cosas al objeto OPP En php
class NombreClase{ //propiedades //métodos }
^[a-zA-Z_][a-zA-Z0-9_]*$
propiedadesmétodospseudovariables thisoperador self y parentInstancias: Operador new
class MiCalse{ //propiedades //métodos } $objeto = new Miclase();
<?php class MyClase { function ser_estar() { if (isset($this)) { echo '$this Ahora soy por que estoy'; } else { echo "\$this ni es ni está.\n"; } } }
$a = new MyClase(); $a->ser_estar(); // Accedo directamente al método de la clase MyClase::ser_estar();
class Producto { private static $num_productos = 0; private $codigo; //..... public funtion ventaProducto($cantidad){ //Este método podría realizar hacer varias cosas , y luego quiero decrementar elemento $this->decrementa($cantidad); } public function incrementa ($cantidad) { self::$num_productos-=$cantidad; } //....
http://php.net/manual/es/function.get-class.php
Funciones para usar con objetos
http://php.net/manual/es/ref.classobj.php
Estableciendo nivel de acceso:Encapsulación
Constructor
class Producto { private static $num_productos = 0; private $codigo; public function __construct() { self::$num_productos++; } … } *El constructor de una clase puede llamar a otros métodos o tener parámetros, en cuyo caso deberán pasarse cuando se crea el objeto. Sin embargo, sólo puede haber un método constructor en cada clase. <source lang=php> class Producto { private static $num_productos = 0; private $codigo; public function __construct($codigo) { $this->$codigo = $codigo; self::$num_productos++; } } $p = new Producto('GALAXYS');
|