La programación orientada a objetos es un concepto o técnica de programación que nos permite reutilizar código y mejora de forma notable el mantenimiento de las aplicaciones.

En este ambito todo gira en torno a objetos y clases al igual que otros lenguajes como C++ o Java

Hay muchas formas de definir POO por lo que lo voy a explicar a mi manera la cual espero que sea lo mas facil de entender

Objetos

Cuando pensamos en objetos debemos imaginar por ejemplo un catalogo de smartphones, hay muchos smartphones pero cada uno tiene diferentes atributos (tamaño, color …) y métodos ( Camara frontal, Camara trasera, 4G, 3G …)

Imaginemos que todos los smartphones son objetos, cada objeto tiene atributos y métodos igual que los smartphones. Los atributos son simplemente variables definidas en una clase y los metodos las funciones definidas en una clase

Las clases definen las propiedades y los métodos que luego podrán usar los objetos.

Sintaxis de una clase en PHP5

<?php
	class SoyUnaClase {
		private $soyUnAtributo;
		public function soyUnMetodo() { 
			...
		}
	}
?>

Una clase se define con la palabra reservada “class”, como hemos visto, las clases son simplemente una definición o una especificación de atributos(variables) y metodos(funciones) que podemos usar en nuestras aplicaciones

Instanciar un objeto

Para utilizar una clase tenemos que instanciar un objeto, a continuacion definimos un objeto llamado $soyUnObjeto y lo creamos utilizando el operador “new” seguido de la clase.

$soyUnObjeto = new SoyUnaClase;

Llamar a los miembros de una clase

Para acceder a los métodos y atributos utilizamos el operador “->” seguido del nombre del método o atributo.

$soyUnObjeto -> soyUnAtributo;
$soyUnObjeto -> soyUnMetodo();

Para acceder a los métodos y atributos desde dentro de la clase utilizamos la pseudovariable “$this” y el operador “->” seguido del nombre del método o atributo.

$this -> soyUnMetodo();
$this -> soyUnAtributo();

Ejemplo en PHP5

<?php
	class Smartphone {
		private $marca;
		public function imprimir($nom) {
			$this->marca=$nom;
		}
		public function printMarca() {
			echo '<h2>Modelo</h2>';
			echo $this->marca;
		}
	}
	$obj1=new Smartphone();
	$obj1->imprimir('Samsung');
	$obj1->printMarca();
	$obj2=new Smartphone();
	$obj2->imprimir('Nokia');
	$obj2->printMarca();
	$obj3=new Smartphone();
	$obj3->imprimir('Apple');
	$obj3->printMarca();
?>

Resumen

Primero hemos creado la clase “Smartphone”.

A continuación y dentro de la clase, hemos definido el atributo “marca”, en PHP4 definiamos los atributos explícitamente con la palabra reservada “var”, en PHP5 no es necesario, podemos definir los atributos como “public”, “private” y “protected”, si no lo hacemos, estos serán declarados como “public”.

Definimos tambien el método “imprimir()” que recibe un parametro y el método “printMarca()”, la función de estos métodos será imprimir en pantalla un encabezado común y un modelo para cada objeto.

Por último hemos instanciado tres objetos ($obj1,$obj2,$obj3) de la clase “Smartphone” y hemos llamado a sus metodos que se encargan de ejecutar las funciones, el método “imprimir()” recibe un parametro que definimos al llamar al método.


Diferencias en el modelo de objetos entre PHP4 y PHP5

PHP5 ofrece un mejor rendimiento y más caracteristicas en cuanto a modelo de objetos se refire, la mayor parte del código generado para PHP4 funciona sin problemas en PHP5, a continuación vamos a repasar algunas de las diferencias mas importantes.

Principio de ocultación

En PHP4 no existe el principio de ocultación, todos los miembros de una clase son publicos, por lo tanto no podemos definir la visibilidad de los atributos y métodos de una clase, los atributos deben declararse explícitamente con “var”.

En PHP5 si existe el principio de ocultación, podemos definir la visibilidad de los atributos y métodos de una clase con “public” (accesible desde cualquier ambito), “private” (accesible desde dentro de la clase y sus clases heredadas) o “protected” (accesible solo desde dentro de la clase).

Importante

En PHP5, entre los miembros de una misma clase no se aplica el principio de ocultación.
Al declarar los atributos en PHP5 podemos seguir usando la sintaxis de PHP4 (var $atributo;) que equivale a “public”.

Constructor

En PHP4 el constructor es un método con un nombre igual que el nombre de la clase.

En PHP5 el constructor es un método con el nombre “__construct()”.

Importante

En PHP5 podemos seguir usando la sintaxis de PHP4 y declarar el constructor con un nombre igual que el nombre de la clase

Destructor

En PHP4 no existe el destructor, el destructor se llama automaticamente cuando deja de ejecutarse el codigo

En PHP5 el destructor es un método con el nombre “__destruct()” que no puede recibir argumentos


Clases heredadas

Para indicar que una clase hereda de otra utlilizamos la palabra reservada “extends”, no existe la herencia multiple, por lo que solo se puede heredar de una clase, si la clase heredada tiene su propio constructor o destructor, al crear un objeto de la clase heredada tenemos que declarar explícitamente a su constructor o destructor con “parent::__construct()” o “parent::__destruct()” respectivamente, ya que estos no se invocan por defecto.

Ejemplo

class SoyUnaClaseNueva extends SoyUnaClaseHeredada {
	  public function soyUnMetodo() {
	    ...
	  }
}

Valoraciones


Sé el primero en valorar

* Tu valoración puede tardar hasta 72 horas en publicarse.

He leido y acepto el Aviso legal y condiciones de uso

CAPTCHA


Utilizamos cookies propias y de terceros para el correcto funcionamiento de la web, personalizar el contenido y mostrar publicidad en función de las preferencias del visitante. Puedes encontrar más información en nuestra Política de cookies.

ACEPTAR
Aviso de cookies