Cargando la página...

Usted está aquí:

La programación orientada a objetos (OOP) en PHP 5

Publicado por Gastón Furini el 30.03.2008 17:34:10 en PHP - Nivel Básico

Avatar de CID
Avatar de

Este artículo es ideal para aquellos programadores en versiones de PHP anteriores a la 5 que desean o deben dar el salto a la programación orientada a objetos mediante la versión 5 de PHP. Se intentará dar un repaso sobre la programación orientada a objetos, como paradigma sin depender de ningún lenguaje en particular, para posteriormente abordar las características de la misma en PHP 5.

Página 01 02 de 02 | Versión completa

Programación orientada a objetos

La programación orientada a objetos es un paradigma de programación, una manera de pensar las soluciones modelando la realidad y sus cosas como objetos y tipos de objetos.

La programación orientada a objetos es una extensión de la programación procedural.

Las clases son tipos de objetos que sirven de molde para crear objetos. Las clases proveen objetos.
Una clase es un tipo de dato complejo, definido por el usuario, formado por otros tipos de datos que juntos describen un objeto.
Las clases contienen funciones así como diferentes tipos de datos.
Las variables de clases no tienen porque tener cosas hechas para ellas: ellas mismas hacen cosas.
El comportamiento de una clase es la suma de sus funciones.

Para que algo sea un objeto, este debe ser un conjunto cohesivo que incorpore características apropiadas y comportamientos apropiados.
Las clases no son objetos en si mismas, pero son una manera de crear objetos. Forman el modelo para un objeto.
Un objeto es una instancia de una clase, una ocurrencia específica de ella.
La programación orientada a objetos es posible al usar este simple concepto de una clase como un conjunto cohesivo de características y comportamientos.

class Clase
{
  var $atributo;
  function funcion($parametro)
  {
    return $this->atributo + $parametro;
  }
}

$objeto = new Clase;
$objeto->atributo = 1;
echo $objeto->funcion(2);


Encapsulamiento es el ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.

Los modificadores de acceso refinan el modelo del objeto al controlar cómo un objeto es usado y reusado. Proveen una guia de lo que puede y no puede hacer con un objeto. Implementan restricciones del lenguaje que aseguran que subrutinas nunca sean invocadas directamente. Clases propiamente construidas son auto-documentadas y auto-reguladas.
Una de las asunciones de la programación orientada a objetos es que es conducida dentro de un contexto interactivo con modificadores de acceso definiendo la manera de interactuar.
Los modificadores de acceso proveen las reglas para usar una clase y esto definido sintácticamente etiquetado es comúnmente referido como una interface.
Los modificadores de acceso facilitan la reutilización.

class Clase
{
  private $atributo;
  public function funcion($parametro)
  {
    return $this->atributo + $parametro;
  }
}

$objeto = new Clase;
$objeto->atributo = 1; // Error de acceso
echo $objeto->funcion(2);


En programación orientada a objetos, la herencia es la habilidad de trasladar características y comportamientos.
La herencia es solo una técnica para reutilizar código.
Con la herencia se puede tomar ventaja de los comportamientos existentes pero también permite agregar cualquier capacidad adicional que se necesite.
En la herencia, la clase original se suele llamar clase base o padre, y la clase que hereda de la original se llama clase derivada o clase hija.
Herencia múltiple. En PHP 5 un objeto puede tener solo una clase padre.
Una interface es una clase sin datos miembro que solo está hecha de funciones sin implementación (prototipos de funciones sin cuerpo). Cualquier clase que derive de una interface debe implementar el cuerpo de las funciones de la interface.
Al utilizar interfaces en lugar de herencia múltiple se evita el problema de definir la misma función varias veces.
Una clase puede heredar solo de una clase, pero dado que las interfaces carecen de implementación, cualquier numero de ellas pueden ser heredadas.
Las interfaces pueden ser descriptas como abstractas porque siempre requieren de una implementación. Por ser abstractas las interfaces tienen mayor parecido a lo que hacen las plantillas que a lo que hacen las clases.
A diferencia de las clases, no pueden nunca ser usadas tal cual, solo tienen significado en el contexto de la herencia. Dado que las interfaces carecen de una implementación solo puede actuar como un modelo para la creación de una clase derivada.

class Clase
{
  private $atributo;
  function funcion($parametro)
  {
    return $this->atributo + $parametro;
  }
}

class ClaseDerivada extend Clase
{
  public $atributo2;
}

$objeto = new Clase;
$objeto->atributo2 = 1;
echo $objeto->funcion(2);


Resumiendo, las clases definen objetos, los modificadores de acceso determinan como los objetos pueden ser usados y la herencia hace fácil adaptar objetos para diferentes circunstancias.
La programación orientada a objetos incorpora restricciones dentro del lenguaje.

Página 01 02 de 02 | Versión completa

Descargas asociadas al artículo:

No existen descargas asociadas

Estadisticas:

Artículo leido 803 veces con un puntaje de 8.67 pts

Comentarios.

Sus comentarios son importantes.

No hay comentarios para listar, si desea puede crear el primer comentario para este artículo.

Debe estar identificado para agregar un comentario