Creacin de clases
Para definir una clase de objetos, utilizaremos la palabra reservada class seguida del nombre de la clase. A continuacin, entre llaves escribiremos las propiedades y los mtodos de la clase. class Herramientas { ... } Hemos puesto el nombre de la clase (Herramientas) con la primera letra en mayscula, esto no es obligatorio, pero es conveniente para hacer una distincin entre nombres de clases y el resto de variables o cdigo que podamos crear.
Definir propiedades
Una vez creada la clase, dentro de las llaves escribiremos en primer lugar las propiedades que los objetos de esta clase deben tener. Para ello definiremos una serie de variables:
<?php class Herramientas { var $nombre="sin_nombre"; var $precio=0; var $imagen="objetos/herramientas.gif"; var $descripcion; } ?>
Al definir estas variables, hemos creado las propiedades que tendrn los objetos de esta clase. Si inicializamos las variables, es decir si les damos un valor, la propiedad indicada tendr ese valor por defecto, si no le damos ningn valor (como la variable $descripcin), la propiedad no tendr ningn valor por defecto. Los objetos que creamos no tienen contenido en s mismos, su contenido viene dado por sus propiedades y sus mtodos, es por eso que incluso si queremos sacar en pantalla el nombre del objeto, ste tiene que ser definido dentro de una propiedad. Ahora vamos a poner un poco de orden en el ejemplo que estamos utilizando, en principio todos los archivos y subcarpetas que creemos los guardaremos en una carpeta principal que llamaremos, por ejemplo Herramientas. Para empezar copiamos el cdigo anterior, tal como est, y lo guardamos en un archivo llamado clase_herramientas.php. En este archivo iremos guardando el cdigo php para la creacin de la clase herramientas. Lo copiamos tal como est sin aadirle ningn cdigo HTML, ya que cuando lo necesitemos ser llamado a la pgina mediante una instruccin include().
<?php include("clase_herramientas.php"); ?> </head> <body> <h1>Herramientas</h1> </body> </html> De momento es una pgina normal, con la nica particularidad de que hemos incorporado el cdigo PHP anterior mediante la instruccin include. Como queremos hacer de esta pgina la pgina principal del sitio la guardaremos con el nombre de index.php . En la pgina queremos mostrar tambin las imgenes de los objetos que vayamos creando, por lo que para guardarlas crearemos una subcarpeta llamada objetos donde guardaremos las imgenes que necesitemos. De momento guardaremos all la siguiente imagen, que es la que hemos puesto por defecto en la propiedad imagen; la llamaremos herramientas.gif .
Instanciar un objeto
Se llama instanciar un objeto al hecho de crear un objeto concreto que pertenezca a una clase que ya existe. Seguimos con nuestro ejemplo, donde instanciaremos un objeto al que llamaremos $caja_herramientas. Para ello, abrimos la pgina index.php con el editor de textos, y despus de la etiqueta <h1>Herramientas</h1>, abrimos para escribir en php: (<?php ... ?>). Pondremos aqu el cdigo para instanciar un nuevo objeto y ver sus propiedades en pantalla. Para instanciar el objeto usaremos el siguiente cdigo: $caja_herramientas = new Herramientas;
Es decir para instanciar un objeto de una clase lo definimos en una variable ($caja_herramientas) y como valor le asignamos la palabra reservada new seguido del nombre de la clase a la que va a pertenecer.
Esto nos mostrara en pantalla la propiedad nombre del objeto $caja_herramientas. Como no le hemos cambiado el valor a esta propiedad, lo que nos mostrar en pantalla es el valor por defecto, el cual era: "sin nombre". Observa que la manera de acceder a una propiedad es mediante el nombre del objeto seguido de los signos ->(guin - mayor) seguido del nombre de la propiedad (sin el signo $ ). Sin embargo lo que queremos es darle un nuevo valor a esta propiedad, esto lo haremos por asignacin: $caja_herramientas->nombre = "Caja de herramientas"; Pondremos la lnea anterior en nuestra pgina, y aadiremos tambin las siguientes para cambiar los valores de otras propiedades: $caja_herramientas->precio = 60; $caja_herramientas->descripcion = "Caja completa de herramientas, 50 piezas calidad buena."; Observa que la propiedad imagen no la hemos cambiado, ya que su valor por defecto es el que queremos que tenga. Ahora queremos ver en pantalla las propiedades de este objeto, para ello escribiremos el siguiente cdigo: echo "<img src='$caja_herramientas->imagen' alt='$caja_herramientas>nombre' width='200' align='left'>"; echo "<p>Producto: $caja_herramientas->nombre. </p>"; echo "<p>Precio($): $caja_herramientas->precio </p>"; echo "<p>Descripcin: $caja_herramientas->descripcion. </p>"; Para mostrar la imagen, de la cual hemos guardado la ruta, debemos poner en la instruccin echo el cdigo HTML que muestre la imagen, fjate cmo en el atributo src escribimos la propiedad donde hemos guardado la ruta.
<html> <head> <title>Herramientas</title> <?php include("clase_herramientas.php"); ?> </head> <body> <h1>Herramientas</h1> <?php $caja_herramientas = new Herramientas; $caja_herramientas->nombre = "Caja de herramientas"; $caja_herramientas->precio = 60; $caja_herramientas->descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; echo "<img src='$caja_herramientas->imagen' alt='$caja_herramientas>nombre' width='200' align='left'>"; echo "<p>Producto: $caja_herramientas->nombre. </p>"; echo "<p>Precio($): $caja_herramientas->precio </p>"; echo "<p>Descripcin: $caja_herramientas->descripcion. </p>"; ?> </body> </html>
Si has seguido los pasos que hemos dado hasta ahora con este ejemplo la pgina index.php debe quedar como la siguiente:
Herramientas Producto: Caja de herramientas. Precio ($): 60 Descripcin: Caja completa de herramientas, 50 piezas calidad buena..
Mtodos en objetos
Definicin de mtodo.
En la pgina anterior vimos cmo crear un objeto, y cmo definir sus propiedades. Las propiedades son una caracterstica del objeto, siempre almacenan un valor. Los mtodos sin embargo representan acciones. Con un mtodo indicamos al cdigo que haga algo relacionado con el objeto, por ejemplo calcular un valor a partir de otros, sacar en pantalla algunas o todas las propiedades, etc. ESto lo haremos mediante funciones, por lo tanto un mtodo no es ms que una funcin donde pedimos al cdigo que haga algo con el objeto.
Crear un mtodo
En la pgina anterior hemos creado una clase llamada Herramientas. Siguiendo con este ejemplo, crearemos en primer lugar un mtodo que calcule el precio para artculos que tengan un tanto por ciento de descuento. el cdigo de la clase Herramientas lo tenamos guardado en un archivo llamado clase_herramientas.php. Abrimos ese archivo con el editor de textos, el cual debe tener el siguiente cdigo: <?php class Herramientas { var $nombre="sin_nombre"; var $precio=0; var $imagen="objetos/herramientas.gif"; }
?> En la clase herramientas (dentro de las llaves) escribiremos lo siguiente: En primer lugar definimos una nueva propiedad. var $descripcion; Despus escribiremos la funcin que crea el mtodo, de modo que el archivoclase_herramientas.php quedar as: <?php class Herramientas { var $nombre="sin_nombre"; var $precio=0; var $imagen="objetos/herramientas.gif"; var $precio_descuento; function descuento($porcentaje) { $rebaja=$this->precio - ($this->precio*($porcentaje/100)); $this->precio_descuento =$rebaja; } } ?> Explicaremos algunas cosas de esta funcin: La funcin puede llevar parmetros, en este caso en el parmetro indicaremos el tanto por ciento en que el producto est rebajado. La variable $this que aparece en la funcin se utiliza para hacer referencia al objeto al que se le aplica, es decir, al llamar a la funcin o mtodo, se hace sobre un objeto concreto de la clase, nos referimos a ese objeto, de ah que podamos ponerle tambin las propiedades del objeto. Mediante un clculo el mtodo aade el valor a la nueva propiedad que hemos definido anteriormente (precio_descuento) Por ltimo en la pgina principal, (index.php) debemos aadir el cdigo para poder visualizar la nueva propiedad, para ello en primer lugar llamaremos al mtodo para que haga el clculo del descuento.
$caja_herramientas->descuento(15); Como ves la forma correcta de llamar a un mtodo desde un objeto concreto es similar a la forma de llamar a una propiedad; es decir, mediante los signos -> . $nombre_objeto->nombre_metodo(); El mtodo, al igual que las funciones puede llevar parmetros, en este caso pasamos como parmetro el valor del tanto por ciento del descuento. El mtodo puede devolver tambin un valor de retorno, para ello utilizaremos al final de su cdigo la instruccin return, de la misma manera que se hace con el resto de las funciones. Una vez llamado al mtodo, la nueva propiedad debe tener el valor asignado por el mtodo, por lo que llamamos a la nueva propiedad para mostrarla en pantalla: echo "<p>Precio con descuento = $caja_herramientas>precio_descuento.</p>"; En la pgina index.php, el cdigo PHP para mostrar el objeto ser el siguiente: <?php $caja_herramientas = new Herramientas; $caja_herramientas->nombre = "Caja de herramientas"; $caja_herramientas->precio = 60; $caja_herramientas->descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; echo "<img src='$caja_herramientas->imagen' alt='$caja_herramientas>nombre' width='200' align='left'>"; echo "<p>Producto: $caja_herramientas->nombre. </p>"; echo "<p>Precio: $caja_herramientas->precio </p>"; $caja_herramientas->descuento(15); echo "<p>Precio con descuento = $caja_herramientas>precio_descuento.</p>"; echo "<p>Descripcin: $caja_herramientas->descripcion. </p>"; ?> En color lila hemos destacado las nuevas lneas que hemos aadido al cdigo que ya tenamos antes. Objetos en PHP por Marco Cajeao 8
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Herramientas</title> <?php include("clase_herramientas.php"); ?> </head> <body> <h1>Herramientas</h1> <?php $caja_herramientas = new Herramientas; $caja_herramientas->nombre = "Caja de herramientas"; $caja_herramientas->precio = 60; $caja_herramientas->descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; $caja_herramientas->descuento(15); $caja_herramientas->mostrar(); ?> </body> </html> La ventaja de aplicar este nuevo mtodo es obvia en el caso de que tengamos que mostrar en pantalla varios objetos de esta misma clase, ya que con slo llamar al mtodo nos evitamos tener que escribir una y otra vez todas las instrucciones echo. Veamos ahora el cdigo completo de la pgina clase_herramientas.php, donde hemos guardado el cdigo de la clase herramientas. Este debe quedar as: <?php class Herramientas {
10
var $nombre="sin_nombre"; var $precio=0; var $imagen="objetos/herramientas.gif"; var $descripcion; var $precio_descuento; function descuento($porcentaje) { $rebaja=$this->precio - ($this->precio*($porcentaje/100)); $this->precio_descuento =$rebaja; } function mostrar() { echo "<img src='$this->imagen' alt='$this->nombre' width='200' align='left'>"; echo "<p>Producto: $this->nombre. </p>"; echo "<p>Precio: $this->precio </p>"; if ($this->precio_descuento) { echo "<p>Precio con descuento = $this>precio_descuento.</p>"; } echo "<p>Descripcin: $this->descripcion. </p>"; } } ?> El contenido de la pgina sigue siendo el mismo que en el ejemplo anterior, la diferencia est en la simplificacin del cdigo de la pgina principal.
11
Funciones constructoras.
Definicin de funcin constructora
Una funcin constructora o constructor, es una funcin que podemos llamar al mismo tiempo que instanciamos un objeto. Esta funcin es parecida a cualquier otro mtodo de la clase, con la diferencia de que la podemos llamar cuando instanciamos un objeto. Crear una funcin constructora: Para crear una funcin constructora debemos llamarla de la misma manera que la clase a la que pertenece, por ejemplo si hemos creado la clase: class Herramientas { ... } Dentro de las llaves que definen la clase crearemos la funcin: function Herramientas ($argum1, $argum2, ... $argumN) { ... } Como vemos la funcin puede llevar o no argumentos, y dentro de las llaves podemos indicar las propiedades del objeto mediante la variable $this . Para llamar a una funcin constructora lo haremos en el momento de instanciar el objeto, de la siguiente manera: caja_herramientas = new Herramientas($arg1,arg2, ... argN); Es decir, al instanciar el objeto, le pasamos los argumentos, de manera que desde el mismo momento en que se crea el objeto, este puede tener ya una serie de propiedades, condiciones, o modo de actuar, marcado por la funcin constructora. Una de las utilidades ms frecuentes de la funcin constructora es la de aadir al objeto instanciado las propiedades que queremos que sean distintas a las que tiene por defecto. Esto se hace pasndole los nuevos valores como argumentos, e indicando en la funcin constructora que el objeto debe tener esos nuevos valores.
12
var $nombre="sin_nombre"; var $precio=0; var $imagen="objetos/herramientas.gif"; var $descripcion; var $precio_descuento; function descuento($porcentaje) { $rebaja=$this->precio - ($this->precio*($porcentaje/100)); $this->precio_descuento =$rebaja; } function mostrar() { echo "<img src='$this->imagen' alt='$this->nombre' width='200' align='left'>"; echo "<p>Producto: $this->nombre. </p>"; echo "<p>Precio: $this->precio </p>"; if ($this->precio_descuento) { echo "<p>Precio con descuento = $this>precio_descuento.</p>"; } echo "<p>Descripcin: $this->descripcion. </p>"; } function Herramientas ($nomb,$prec,$imag,$desc,$reba) { $this->nombre=$nomb; $this->precio=$prec; $this->imagen=$imag; $this->descripcion=$desc; if ($reba) { $this->descuento($reba);
13
} } } ?> En color morado est resaltada la funcin constructora. El resto del cdigo es el mismo que tenamos en el ejemplo de la pgina anterior. En esta funcin vamos dando al objeto los distintos valores para sus propiedades, los cuales los pasaremos en los argumentos de la funcin. Fjate en el uso de la variable$this para referirnos al propio objeto que instanciamos. Por otra parte en la pgina principal cambiaremos la forma de crear el nuevo objeto, primero definiremos una serie de variables que contienen las propiedades del objeto, y despus se las pasaremos como argumento al instanciar el objeto. En el archivo index.php de este ejemplo, cambiaremos el cdigo que instancia y muestra el objeto por este otro: <?php $nombre="Caja de herramientas tipo 1"; $precio = 60; $imagen = "objetos/herramientas.gif"; $descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; $caja1 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20"); $caja1->mostrar(); ?> El cdigo se muestra ms sencillo, ya que no tenemos que definir las propiedades, sino que simplemente pasamos como argumento los valores que contienen sus valores. Al pasar los argumentos debemos de tener cuidado de pasarlos en el mismo orden en que estn en la funcin constructora para que cada uno de ellos se corresponda con la propiedad a la que corresponde. Una vez pasados los argumentos, slo tenemos que llamar a la funcin mostrar()para ver en pantalla el objeto.
14
Como ves la pgina es muy similar al del ejemplo anterior, sin embargo tiene la ventaja de que ahora aadir a la pgina un nuevo objeto es mucho ms fcil. Veamos cmo se aade un nuevo objeto a la pgina de nuestro ejemplo, Como en cada objeto ponemos una imagen distinta, en primer lugar guardaremos la imagen que vamos a ponerle al objeto en la subcarpeta objetos, y la llamaremos herramientas2.gif. por si quieres crear el ejemplo a la vez que lo explicamos, la imagen es la siguiente:
Una vez copiada y guardada la imagen modificamos el cdigo php anterior de la pgina index.php, aadindole las siguientes lneas: <?php $nombre="Caja de herramientas tipo 1"; $precio = 60; $imagen = "objetos/herramientas.gif"; $descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; $caja1 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20"); $caja1->mostrar(); echo "<hr width='80%'/>";
$nombre="Caja de herramientas tipo 2"; $precio =80; $imagen = "objetos/herramientas2.gif"; $descripcion ="Caja herramientas profesional, 70 piezas calidad excelente."; $caja2 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20");
15
$caja2->mostrar(); ?> Como vemos, la creacin de clases puede ser til en algunas ocasiones, ya que si en principio requiere escribir ms trozo de cdigo, es posible que luego pueda simplificarnos mucho el trabajo.
16
Subclases
Creacin de subclases
Podemos hacer que de una clase de objetos deriven otra serie de clases incluidas en la primera, esto son las subclases, llamadas tambin clases extendidas, o clases derivadas. En ejemplos anteriores hemos usado la clase Herramientas; ahora queremos crear dentro de esta clase dos subclases que sern Manuales y Mecanicas. Al crear estas subclases tenemos que hacer referencia a la clase de la que dependen. esto lo haremos mediante la palabra reservada extends de la siguiente manera: class Manuales extends Herramientas { .. } class Mecanicas extends Herramientas { ... } Con esto hemos creado las dos subclases.
Herencia
Las subclases heredan las propiedades y mtodos que tiene la clase de la cual derivan, por tanto, en nuestro ejemplo, las clases Manuales y Mecnicas Tienen, al ser creadas las mismas propiedades y mtodos que la clase Herramientas, si la claseHerramientas tiene funcin constructora, sta tambin se hereda a las subclases, es decir para instanciar los objetos de las subclases utilizaremos la funcin constructora: $caja1 = Manuales ($arg1,$arg2,$arg3, ... ,$argN); Donde ($arg1,$arg2,$arg3, ... ,$argN) hace referencia a la funcin constructora de la clase principal. La clase principal define por tanto una serie de propiedades y mtodos generales que tendrn todas las subclases. Las propiedades y mtodos particulares de cada subclase los definiremos dentro de las llaves que delimitan el cdigo de la subclase. Nada nos impide crear ms subclases dentro de las subclases que tenemos, de manera que se cree una jerarqua de clases, en la cual cada una hereda todos los mtodos y propiedades de las que deriva.
Polimorfismo
Esta es una cualidad por la cual podemos redefinir las propiedades y mtodos que una subclase ha heredado, de manera que el cambio afecte slo a esa subclase. Con las propiedades, lo que podemos cambiar es el valor por defecto que stas tienen, para ello basta con darles un nuevo valor dentro de la subclase.
17
Con los mtodos, tambin podemos redefinir las funcines de manera que se ajusten a la subclase. Por ejemplo, si tenemos en la clase principal una funcin mostrar() que muestra en pantalla las propiedades del objeto, mostrar simplemente las propiedades comunes a todas las subclases, si queremos mostrar tambin las propiedades especficas debemos redefinir la funcin mostrar() dentro de la subclase.
18
echo "<p>Descripcin: $this->descripcion. </p>"; } function Herramientas ($nomb,$prec,$imag,$desc,$reba) { //funcin constructora. $this->nombre=$nomb; $this->precio=$prec; $this->imagen=$imag; $this->descripcion=$desc; if ($reba) { $this->descuento($reba); } } } ?> Mediante comentarios hemos diferenciado las distintas partes del cdigo, en primer lugar creamos las propiedades, y despus definimos los distintos mtodos, (para calcular descuento y mostrar en pantalla); por ltimo creamos la funcin constructora. Como derivadas de la clase herramientas crearemos dos subclases, que llamaremos Manuales y Mecnicas.
19
Crear propiedades.
La clase Manuales hereda las propiedades de la clase principal (Herramientas), por lo que de entrada ya tiene todas las propiedades de la clase Herramientas, sin embargo queremos aadirle, ms propiedes. para ello dentro de las llaves que delimitan el cdigo de la clase Manuales escribimos lo siguiente: var $clase; var $peso; Con esto ya hemos aadido las propiedades especficas de la esta subclase.
Modificar mtodos
La subclase Manuales ha heredado tambin los mtodos de la clase principal, por lo que podemos usarlos tambin en esta subclase. El mtodo mostrar de la clase principal, al aplicarlo a esta subclase, nos mostrar slamente las propiedades que estn definidas en la clase principal, pero no nos muestra las propiedades especficas que hemos definido para esta subclase. Si queremos que nos muestre tanto las propiedades comunes como las especficas, debemos reescribir el mtodo dentro de las llaves que delimitan la subclase, de manera que indique que debe mostrar todas las propiedades. Por lo tanto debemos crear dentro de la subclase Manuales una funcin llamada tambin mostrar(), que sustituir a la funcin del mismo nombre de la clase principal. function mostrar() { }; Como la funcin pretende mostrar tanto las propiedades comunes como las especficas, esta funcin en realidad ser una copia de la funcin de la clase principal a la que se le ha aadido el cdigo necesario para mostrar las propiedades especficas. Por lo tanto dentro de las llaves de la funcin, en primer lugar deberamos reescribir el cdigo de la funcin del mismo nombre de la clase principal. Para evitar reescribir el cdigo podemos utilizar una llamada a esta funcin, pero indicando que la funcin est en el elemento de nivel superior. Esto se hace mediante el siguiente cdigo: parent::mostrar(); Este simple cdigo llama a la funcin mostrar de la clase Herramientas y nos evita tener que reescribir su cdigo. A continuacin, escribiremos el cdigo para mostrar en pantalla las propiedades especficas: echo "<p>Clase: $this->clase</p>"; echo "<p>Peso: $this->peso Kg.</p>";
20
Por lo tanto la funcin mostrar() de la subclase Manuales quedar de la siguiente manera: function mostrar() { parent::mostrar(); echo "<p>Clase: $this->clase</p>"; echo "<p>Peso: $this->peso Kg.</p>"; }
21
class Manuales extends Herramientas { var $clase; var $peso; function mostrar() { parent::mostrar(); echo "<p>Clase: $this->clase</p>"; echo "<p>Peso: $this->peso Kg.</p>"; } function Manuales ($nomb,$prec,$imag,$desc,$reba,$cla,$pes) { parent::Herramientas ($nomb,$prec,$imag,$desc,$reba); $this->clase=$cla; $this->peso=$pes; } }
22
$caja1->mostrar(); echo "<hr ?> En este cdigo primero definimos las variables que vamos a pasar como argumentos a la funcin constructora, y luego instanciamos el objeto, indicndole los argumentos que servirn para cfrear las propiedades. Por ltimo mediante la funcin mostrar, nos muestra en pantalla el objeto y sus propiedades. width='80%'/>";
23
$imagen = "objetos/cortasetos.gif"; $descripcion ="cortasetos mecnico"; $descuento = "20"; $tipo = "Motor gasolina"; $consumo = "0.2 l/h."; $cortaset = new Mecanicas ($nombre,$precio,$imagen,$descripcion,$descuento,$tipo,$consumo); $cortaset->mostrar();
24
Anexo
Cdigo de la pgina clase_herramientas.php
<?php class Herramientas { //clase principal var $nombre; //Propiedades comunes en esta lnea y las siguientes. var $precio; var $imagen; var $descripcion; var $precio_descuento; function descuento($porcentaje) { //mtodo que calcula el procentaje $rebaja=$this->precio - ($this->precio*($porcentaje/100)); $this->precio_descuento =$rebaja; } function mostrar() { //mtodo para ver las propiedades comunes en pantalla. echo "<img src='$this->imagen' alt='$this->nombre' height='200' align='left'>"; echo "<p>Producto: $this->nombre. </p>"; echo "<p>Precio: $this->precio </p>"; if ($this->precio_descuento) { echo "<p>Precio con descuento = $this>precio_descuento.</p>"; } echo "<p>Descripcin: $this->descripcion. </p>"; }
25
function Herramientas ($nomb,$prec,$imag,$desc,$reba) { //funcin constructora. $this->nombre=$nomb; $this->precio=$prec; $this->imagen=$imag; $this->descripcion=$desc; if ($reba) { $this->descuento($reba); } } } class Manuales extends Herramientas { //subclase "Manuales". var $clase; //Propiedades especficas de la subclase. var $peso; function mostrar() { //modificar mtodo mostrar para esta subclase. parent::mostrar(); echo "<p>Clase: $this->clase</p>"; echo "<p>Peso: $this->peso Kg.</p>"; } function Manuales ($nomb,$prec,$imag,$desc,$reba,$cla,$pes) { Constructor para esta subclase. parent::Herramientas ($nomb,$prec,$imag,$desc,$reba); $this->clase=$cla; $this->peso=$pes; } } class Mecanicas extends Herramientas { //Subclase "Mecanicas".
26
var $tipo; //Propiedades especficas de la subclase. var $consumo; function mostrar() { //modificar mtodo mostrar para esta subclase. parent::mostrar(); echo "<p>Tipo: $this->tipo</p>"; echo "<p>Consumo: $this->consumo</p>"; } function Mecanicas ($nomb,$prec,$imag,$desc,$reba,$tip,$cons) { Constructor para esta subclase. parent::Herramientas ($nomb,$prec,$imag,$desc,$reba); $this->tipo=$tip; $this->consumo=$cons; } } ?>
27
28
echo "<hr
width='80%'/>";
//lnea de separacin.
//objeto de subclase "Mecanicas": valor de propiedades $nombre="Cortasetos"; $precio = 200; $imagen = "objetos/cortasetos.gif"; $descripcion ="cortasetos mecnico"; $descuento = "20"; $tipo = "Motor gasolina"; $consumo = "0.2 l/h."; //instanciar e inicializar objeto. $cortaset = new Mecanicas ($nombre,$precio,$imagen,$descripcion,$descuento,$tipo,$consumo); $cortaset->mostrar(); //mostrar en pantalla. ?> </body> </html>
29
Referencias
http://es.wikipedia.org/wiki/POO http://www.phpya.com.ar/poo/ http://phpbasico.freevar.com/ http://www.zonaphp.com/programacion-orientada-a-objetos-en-php/ http://www.programacionweb.net/articulos/articulo/?num=158 http://www.maestrosdelweb.com/editorial/programacion-orientada-a-objetos-en-php5/ http://www.webestilo.com/php/articulo.phtml?art=27
30