PHP Introducción a los objetos (POO)

La POO es un paradigma de programación desde el cual se tratan los aspectos propios de los lenguajes de programación como objetos del mundo real, es decir, como una silla, un coche, una caja registradora…
El objetivo fundamental de la programación orientada a objetos es simplificar las labores de programación. Para ello se utilizan conceptos como los siguientes.

  • Atributos
  • Métodos
  • Mensajes
  • Herencia
  • Encapsulación
  • Clases
Bases de la Programación Orientada a Objetos

Bases de la Programación Orientada a Objetos

Esquema de relación entre objetos

Esquema de relación entre objetos

Veamos algunas definiciones

  1. Un objeto es una entidad que encapsula métodos y atributos. El encapsulado o encapsulación de datos es el proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programación.
  2. Un objeto es una instancia de una clase. El objeto una aparición real de una clase. La clase es abstracta pero el objeto es real y existe dentro del código del programa. Los objetos se comunican entre sí mediante el paso de mensajes.
  3. Abstracción (tipos abstractos de datos y clases). La abstracción es la propiedad de los objetos que consiste en tener en cuenta sólo los aspectos más importantes desde un punto de vista determinado y no tener en cuenta los restantes aspectos.
  4. Polimorfismo. La propiedad de polimorfismo es aquella en que una operación tiene el mismo nombre en diferentes clases, pero se ejecuta de diferentes formas en cada clase
  5. Herencia. Podemos tener una clase superior de la que heredan las demás clases. Por ejemplo de la clase vehículo podrían heredar las clases coche y camión.

En definitiva, un objeto posee unos atributos y métodos propios que sólo pueden ser accedidos por el. Si un objeto necesita algo de otro, deberá pedírselo mediante el paso de un mensaje. El contenido de un objeto es totalmente abstracto, cuando se llama a un objeto no sabemos absolutamente nada de las operaciones que el hará para proporcionarnos un resultado.

Ejemplo de objeto en PHP

Vamos a ver a continuación como se define y usa una clase en PHP. Para ello tenemos que saber los siguiente:

  • La palabra reservada para definir una clase es class
  • Definiremos los atributos con la palabra reservada var
  • En principio nuestros métodos serán meras funciones
  • Todos los métodos de una clase pueden acceder a los atributos sin ningún problema
  • Con $this hacemos referencia al objeto desde el propio objeto
  • Para instanciar una clase usaremos la palabra reservada new
  • Para invocar los métodos de una clase usaremos el operador ->
<?php
class agenda
	{
	var $nombre_agenda;      //Estos son los atributos
	var $agenda=array();
	
	//Ahora vienen los métodos
     
	function da_nombre($nombre_agd)
		{
		$this->nombre_agenda=$nombre_agd;	//Con this hacemos referencia al propio objeto y podremos usar
		} 
   
	function aniadir ($nombre,$telefono) 
		{
		$this->agenda[$nombre]=$telefono;
		}
	function muestra_contacto($nombre,$telefono)	
		{
		echo "<li>$nombre $telefono</li>";
		}

	function imprime()
		{
		echo "<h2>Agenda: <b>".$this->nombre_agenda."</b></h2>";
		echo "<ul>";
		foreach ($this->agenda as $nombre =>$telefono)
			$this->muestra_contacto($nombre,$telefono);
		echo "</ul>";
		}
	function imprime_comienza_por ($comienzo)
		{
		echo "<h2>Imprimiendo contactos de <b>$this->nombre_agenda</b> que comienza por <b>\"$comienzo\"</b></h2>";
		echo "<ul>";
		$cont=0;
		foreach ($this->agenda as $nombre =>$telefono)
			{
			if ($nombre[0]==$comienzo)
				{
				$cont++;
				$this->muestra_contacto($nombre,$telefono);
				}
			}
		echo "</ul>";
		if (!$cont)
			echo "<p><b>Lo sentimos</b>, ningún contacto comienza por \"$comienzo\".";
		}
	}
?>
<!DOCTYPE html>
<html lang="es">
<head>	
	<meta charset="utf-8"/>
	<title>Objetos en PHP</title>
</head>
<body>
	<h1>Gestor de agenda con objetos en PHP</h1>
	<?php	
	$personal=new agenda;      		//Se construye el objeto $personal
	$personal->da_nombre("Personal"); 	//Llamamos a los métodos del objeto con ->
	$profesional=new agenda;		//Se construye el objeto $profesional
	$profesional->da_nombre("Profesional");
	$personal->aniadir ("Juan Luis Mora","+34 127 22 35");
	$personal->aniadir ("Elena Fuentes","+34 555 00 01");
	$profesional->aniadir ("Pedro (analista)","+34 111 22 33");
	$profesional->aniadir ("José (diseñador)","+34 111 22 33");
	$personal->imprime();
	$profesional->imprime();
	$personal->imprime_comienza_por("J");
	$profesional->imprime_comienza_por("A");
	?>
</body>
</html>

Ejercicios

  1. Añade dos contactos a cada agenda
  2. Crea una agenda llamada amigos
  3. Inserta tres amigos y muéstralos
  4. Muestra los amigos que empiezan por “A” (si existen)

Originally posted 2011-03-08 19:37:43.

4 Responses to “ PHP Introducción a los objetos (POO) ”

  1. Pol dice:

    Claro, concreto y sin rodeos ….fantastico!!!

  2. Peter Joseph dice:

    Mi profesor de PHP lo está usando como apuntes ¬¬

  3. Jhon dice:

    Lo maximo!!!

  4. Francisco Naranjo dice:

    Absolutamente fantastico.

    Sencillo de entender para los que estamos aprendiendo.

    Gracias por compartir.

Deja un comentario