You are here
PHP Orientado a Eventos, Clases, herencias y ejercicios Sin categoría 

PHP Orientado a Eventos, Clases, herencias y ejercicios

PHP: Programación orientada a objeto

La mayoría de los lenguajes de programación modernos son orientados a objetos o en su defecto se aproximan mucho a éstos permitiendo algunas de sus características como es el caso de PHP. La programación OO principalmente hace uso de clases, objetos, relaciones, instancias, propiedades y métodos

Qué es el constructor de una clase

Las clases soportan un tipo de función especial que se conoce como constructor. El constructor es llamado cuando se crea el objeto. Normalmente utiliza para inicializar tareas como: asignación de valores a determinados atributos, crear nuevos objetos necesarios para el correcto funcionamiento del objeto, etc.

El constructor se declara de la misma forma que los métodos, lo único que debemos tener en cuenta es que debe tener el mismo nombre que la clase. A continuación veremos como se declara el constructor de una clase:

               class NombreClase {                 function NombreClase($param) {                echo “Constructor llamado con el parámetro $param”;                }               }

Cómo usar objetos, instanciar una clase

Después de haber declarado una clase, ya podemos usarla creando un objeto que es una instancia a esa clase como ya se ha mencionado anteriormente. Es muy importante que esto quede claro, los objetos son instancias a una clase, por lo tanto cada objeto es único.

En php creamos un objeto usando la palabra reservada new. También debemos indicar a que clase va a instanciar el objeto que creemos y pasarle los parámetros (si los requiere) al constructor, en el siguiente código vamos a ver un ejemplo de esto, para ello tomamos como referencia la clase anterior NombreClase:

               $a = new NombreClase(“Primero”);               $b = new NombreClase(“Segundo”);               $c = new NombreClase();

Cómo usar los atributos de una clase

Una clase, tiene un puntero especial al que podemos referenciar como $this. Si nuestra clase tiene un atributo llamado $atributo, podemos hacer referencia a este desde nuestra clase (métodos) de la siguiente forma $this->atributo, a continuación podemos ver el código de ejemplo del acceso a un atributo de clase desde un método de la propia clase.

               class NombreClase {                var $atributo;                function metodo($param) {                $this->atributo = $param;                echo $this->atributo;                      }               }

Algunos lenguajes permiten limitar el acceso desde fuera a los atributos de una clase declarándolos como privados o protegidos (“private”, “protected”). PHP no soporta esta característica y todos atributos y métodos pueden ser vistos desde fuera de la clase, lo que quiere decir que siempre son públicos.

Podemos realizar la misma acción que anteriormente desde fuera de la clase, usando esta sintaxis.

               NombreClase {                var $atributo;               }               $a = new NombreClase();               $a->atributo = “valor”;               echo $a->atributo;

Cómo usar los métodos de una clase

Los métodos de una clase se pueden llamar de la misma forma que se llaman a los atributos, supongamos que tenemos la siguiente clase:

               class nombreClase {                function metodoa() {                return “Has llamado al método A”;                }                function metodob($parametro1) {                return “Método B llamado con parámetro: “.$paramtro1;                }        }               Creamos un objeto de la case nombreClase con el nombre $obj de la siguiente forma:                $obj = new nombreClase();

Los métodos de un objeto, son llamados de la misma forma que se llaman a funciones normales, pasándoles como es el caso de metodob el parámetro que necesiten. Como los métodos son funciones que pertenecen a un objeto, deberemos indicar en la llamada el objeto que los incluye, la forma de llamar a un método es idéntica a como llamamos a los atributos de un objeto.

               $obj->metodoa();               $obj->metodob(“parámetro que pasamos”);

Si nuestras operaciones, devuelven algún valor, lo capturamos asignándoselo a una variable, podemos ver el siguiente ejemplo

                $txt_retorno = $obj->metodob(“Hola”);

$txt_retorno contendrá la cadena de texto:

               “Metodo B llamado con parámetro: Hola”

Qué es la Herencia en PHP y como implementarla

Como su nombre indica el concepto de herencia se aplica cuando creamos una clase, que va a heredar los métodos y atributos de una ya definida, entonces la clase que hemos creado es una subclase. Para que una clase sea subclase de otra ya creada deberemos usar la palabra reservada extends en el siguiente código podremos ver como creamos una clase llamada SubClaseA que heredará los métodos y atributos de una clase definida con anterioridad llamada ClaseA.

               class SubClaseA extends ClaseA {                var $atributo2;                function operacion2() {                }               }

Tenemos la clase ClaseA que es definida de la siguiente forma:

               Class ClaseA {                var $atributo1;                function operacion1(){                }               }

Si creamos un objeto de la clase SubClaseA este heredará todos los métodos de la clase ClaseA, por lo tanto el siguiente código es válido:

               $x = new SubClaseA();               $x->operacion1();               $x->atributo1 = 100;               $x->operacion2();               $x->atributo2 = 200;

Como podemos observar aunque declaremos un objeto de la clase SubClaseA, al ser una clase extendida de ClaseA podemos hacer uso de todos los métodos y atributos definidos en ClaseA como si estuvieran contenidos en SubClaseA.

Debemos tener en cuenta que la herencia solo trabaja en una dirección, la subclase o clase hija hereda las características de su clase padre o superclase, pero la clase padre no posee las características de la hija. Para el caso anterior ClaseA no tendría atributo2 ni metodo2();

Ejercicio # 1

Ejercicio # 2

<?php

class cuadrado {

// Estos son ATRIBUTOS de los objetos

            var $num=10;   

// Este es el METODO para calcular

            function calcularCuadrado() {   

            return ($this->num * $this->num);

            }          

}

// Creamos el Objeto

$objeto = new cuadrado();

//Asignamos un atributo

//$objeto->num = 3;

// Invocamos un método

echo $objeto->calcularCuadrado();

?>

 

<?php

class imagen {

// Estos son ATRIBUTOS de los objetos

            var $src;

            var $border;

 // Esta función es el CONSTRUCTOR

            function imagen($src,$border) {

            $this->src=$src;

            $this->border=$border;

            }

// Esta función es un METODO

            function Imprimir() {

            echo ” <img src=”;

            echo $this->src;

            echo ” border=”;

            echo $this->border;

            echo ” >”;

            }

}

// Creamos el Objeto

$logo = new Imagen(“imagen/msn2.jpg”,8);

// Invocamos el método

$logo->Imprimir();

?>

 


 

Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros
 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts

Comments

Leave a Comment


*