Continuando con el post de ayer en el que hablé sobre la programación orientada a objetos, vamos a seguir con la parte mas practica de los objetos.

Imaginemos que estamos jugando a algún juego conocido, ¿Super Mario quizás? Si yo preguntara ¿Que es Mario? (el personaje) y ¿Que hace Mario? Diríamos que “Mario es una persona, un fontanero pequeño, que puede saltar, golpear enemigos saltándoles encima, crecer al comer una seta y tirar bolas de fuego si se come una flor, pero si le golpean pierde todas sus ventajas, y si era pequeño muere”. ¡Perfecto! Tenemos nuestro primer objeto, veamos como lo representaríamos mediante PHP:

_flor){ echo "Toma bola de fuego y muere!!!!!!"; }else{ echo "No puedo disparar sin comerme una flor!"; } } //Metodo para comer una flor public function comerFlor(){ $this->_flor = true; } //Metodo para comer una seta public function comerSeta(){ $this->_tam = 1; } //Metodo para cuando nos golpean public function recibirGolpe(){ if($this->_tam == 1){ $this->_flor = false; $this->_tam = 0; }else{ $this->_die(); } } //Metodo que mata a mario private function _die(){ echo "Estoy muerto"; } } ?>

Este ejemplo lo usaré en adelante para ir explicando ciertas propiedades de los objetos. Un objeto se crea a partir de una clase, como vemos la clase se declara usando la sintaxis* class miClase {}*. Como podéis observar se parece mucho a la declaración de una función pero sin el uso de los paréntesis. Dentro de la clase tenemos los atributos, estos son sus propiedades, como su tamaño, si os fijáis se declaran poniendo private, esto lo explicaré también mas adelante para no liarnos, de momento usa private para declarar tus atributos. Debajo de los atributos vemos los métodos, estos son las cosas que puede hacer Mario, como saltar, disparar o recibir un golpe, igual que en el caso de los atributos veras que antepongo la palabra private o public, de momento en tus pruebas quiero que uses public. Si te fijas sigo un orden, declaro la clase, y en ella lo primero que declaro son los atributos y por ultimo los métodos, ¿es necesario? no, tu puedes declarar en el orden que creas conveniente, pero mantener un orden es recomendable tanto si trabajas solo o si lo haces con otros programadores.

Bueno, ya tenemos nuestra clase Mario creada, ¿como convertimos esta clase en un objeto?, pues a continuación de la clase ponemos:

$mario = new Mario();

Y lo dejo aquí de momento, lo siguiente es explicar el uso de los métodos para hacer que nuestro Mario salte o lance bolas de fuego, pero no quiero alargarme más para poder englobar el uso de los métodos en un solo post y así que resulte mas fácil su lectura.