Objetos/Funciones constructivas
¿Qué prefieren ustedes? Construir o destruir. En la vida cotidiana, es siempre más hermoso construir (las destrucciones se las dejamos nosotros a los que tienen esa vocación, menciones militares o políticas aparte) En la vida informática como quiera que sea, las construcciones se hacen necesarias, al igual que, en ocasiones, las destrucciones.
En este nuevo encuentro, vamos a hablar sobre las funciones constructoras para las clases. Una función constructora es una función que se hace o se define de una manera muy similar a como se hace con un método.
Las funciones constructoras se llaman cada vez que una nueva instancia de una clase (un objeto) es hecha.
Las reglas son sencillas, en primer lugar, la función constructora debe llevar el mismo nombre que la clase. Lo que podemos incluir es cualquier conjunto de atributos y definiciones que queremos que sean agregadas a la clase, la primera vez que la clase sea instanciada (o copiada) a un nuevo objeto del tipo de la clase definida.
No es necesario, como lo es con los métodos, hacer una llamada explícita a la función constructora, ya que esa es hecha cuando se crea un objeto de la clase que contiene la función constructora.
¿Seguimos con nuestro ejemplo? De acuerdo (no es exquisita la forma en que la coacción funciona)
Nuestro código hasta este momento es el siguiente:
<?php
class canimal{
var $ojos = 2;
function patas(){
}
$gato = new canimal();
$perro = new canimal();
$gato->patas = 3;
echo $gato->patas();
?>
Un defecto de nuestro código es la necesidad que tenemos agregar líneas de código innecesarias a nuestra aplicación, pudiendo fácilmente pasar como argumentos esos valores a la hora de declarar las variables $gato y $perro como del tipo canimal().
¿Qué hacemos entonces?, sencillo, definimos una función constructora. ¿En dónde? Inmediatamente después del nombre de la clase y de la llave que abre la clase de la siguiente manera:
class canimal{
var $ojos = 2;
function canimal($patas){
}
function patas(){
}
Ahora veamos con detenimiento nuestro resultado en el siguiente vídeo:
[Objeto Flash Eliminado]
No sabemos ustedes, pero nosotros en realidad nos sentimos emocionados del avance. En nuestra próxima lección HERENCIA. Hasta Pronto.