JTagua

Inicio » PHP » Tipos compuestos » object » Tutorial PHP(10): Tipo object.

Tutorial PHP(10): Tipo object.


object

Inicialización de Objetos

Para crear un nuevo object se utiliza la declaración new para instanciar una clase.

En primer lugar tenemos que tener una clase

 
<pre>?php
class persona {
 }
?>

Implementaremos una clase llamada Persona que tendrá como atributo (variable) su nombre y dos métodos (funciones), uno de dichos métodos inicializará el atributo nombre y el siguiente método mostrará en la página el contenido del mismo.

<?php
class Persona {
  private $nombre;
  public function inicializar($nom)  {
  $this->nombre=$nom;
  }
public function imprimir()  {
    echo $this->nombre;
    echo '<br />
  }
}
$per1=new Persona();
$per1->inicializar('Juan');
$per1->;
imprimir();
$per2=new Persona();
$per2->inicializar('Ana');
$per2->imprimir();
?>
El $this es una variable impícita o ya definida (construida automáticamente dentro de todos los objetos) que apunta al objeto actual. O en otras palabras, $this es una variable especial de auto-referencia. Se usa $this para acceder a las propiedades y llamar a otros métodos de la clase actual.
Ahora podemos restringir el acceso a las propiedades usando los “modificadores de acceso”. Uno de los fundamentos principales de la POO es la “encapsulacion”. La idea es que se crea un código mas limpio y mejor, si se restringe el acceso a las estructuras de datos (propiedades) en sus objetos. Puedes restringir acceso a las propiedades de la clase usando algo llamado “modificadores de acceso”. Existen 3 modificadores de acceso: Publico, Protegido,Privado

Publico es el modificador por defecto. Significa que si no lo colocas se asume que es Publico.
Cuando se declara una propiedad como “privada” solo la misma clase puede acceder a la propiedad.
Cuando una propiedad es declarada como “protegida” solo la misma clase y las clases derivadas de esta clase pueden acceder a la propiedad.
Las Propiedades declaradas como “publicas” no tienen restricciones de acceso, significa que cualquiera puede acceder a ellas.
Asi como las propiedades, también se puede controlar el acceso a los métodos usando uno de los tres modificadores de acceso: Publico, Protegido, Privado.
Otro ejemplo,
<?
 class Caja{
     var $alto;
     var $ancho;
     var $largo;
     var $contenido;
     var $color;
  function introduce($cosa){
     $this->contenido = $cosa;
 }
 function muestra_contenido(){
     echo $this->contenido;
 }
 }
 ?>

En este ejemplo se ha creado la clase Caja, indicando como atributos el ancho, alto y largo de la caja, así como el color y el contenido. Se han creado, para empezar, un par de métodos, uno para introducir un elemento en la caja y otro para mostrar el contenido.

Si nos fijamos, los atributos se definen declarando unas variables al principio de la clase. Los métodos se definen declarando funciones dentro de la clase.

Constructores
Los constructores son funciones, o métodos, que se encargan de realizar las tareas de inicialización de los objetos al ser instanciados. Es decir, cuando se crean los objetos a partir de las clases, se llama a un constructor que se encarga de inicializar los atributos del objeto y realizar cualquier otra tarea de inicialización que sea necesaria.No es obligatorio disponer de un constructor, pero resultan muy útiles y su uso es muy habitual. En el ejemplo de la caja, que comentábamos mas arriba, lo normal sería inicializar las variables como color o las relacionadas con las dimensiones y, además, indicar que el contenido de la caja está vacío. Si no hay un constructor no se inicializan ninguno de los atributos de los objetos.El constructor se define dentro de la propia clase, como si fuera otro método. El único detalle es que el constructor debe tener el mismo nombre que la clase. Atentos a PHP, que diferencia entre mayúsculas y minúsculas.

Para la clase Caja definida anteriormente, se podría declarar este constructor:

function Caja($alto=1,$ancho=1,$largo=1,$color="negro"){
$this->alto=$alto;
$this->ancho=$ancho;
$this->largo=$largo;
$this->color=$color;
$this->contenido="";
}

La herencia

La programación orientada a objetos tiene un mecanismo llamado herencia por el que se pueden definir clases a partir de otras clases. Las clases realizadas a partir de otra clase o mejor dicho, que extienden a otra clase, se llaman clases extendidas o clases derivadas.

Las clases extendidas heredan todos los atributos y métodos de la clase base. Además, pueden tener tantos atributos y métodos nuevos como se desee.

Para ampliar el ejemplo que venimos desarrollando, la clase Caja, vamos a crear una clase extendida llamada Caja_tematica. Esta clase hereda de caja, pero además tiene un “tema”, que es la descripción del tipo de cosas que metemos en la caja. Con esto podemos tener varias cajas, cada una con cosas de un tema concreto.

  class Caja_tematica extends Caja {
    var $tema;
    function define_tema($nuevo_tema){
    $this->tema = $nuevo_tema;
    }
 }

En esta clase heredamos de Caja, con lo que tenemos a nuestra disposición todos los atributos y métodos de la clase base. Además, se ha definido un nuevo atributo, llamado $tema, y un método, llamado define_tema(), que recibe el tema con el que se desea etiquetar la caja.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: