PHP5 Orientado a Objetos

Documentos relacionados
Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.

POO. Por tanto, una clase nos permite crear varios objetos que pueden realizar la misma función o funciones diferentes.

Clases y Objetos en C++

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Programación orientada a objetos I

Programación Orientada a Objetos en C++

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

PHP orientado a objetos:

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Instalación de Internet Information Services (IIS)

Programación Orientada a Objetos (POO)

Taller de Programación I. Tema 10: Herencia en Java

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación orientada a objetos

Conceptos Básicos. Programación Orientada a Objetos 2

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Concurso: Cuánto sabes de JAVA?

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Curso de Java POO: Programación orientada a objetos

18. Interfaces Declaración de una interfaz

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Programación orientada a objetos en PHP. Lic. Nancy Michelle Torres Villanueva

Derechos de Acceso: COMPOSICION

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Guías técnicas Grupo Danysoft: Creación de Componentes en Delphi (parte I)

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Tema 3. Programación orientada a objetos en Java (Parte 1)

Programación Orientada a Objetos Clases, métodos, atributos. Concepto de herencia, clases derivadas, tipos de herencia.

Tema 6: Clases. Índice

CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)

Tema: Clases y Objetos en C#. Parte II.

Clase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Java Básico. Polimorfismo. Copyright

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Curso de PHP. Pascual Gómez del Pino Página 1

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Estructura de datos y Programación

12. Tipos de atributos

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Forma Básica Clase Java

Herencia y Polimorfismo

Tema 2: Programación basada en Objetos

PROGRAMACIÓN ORIENTADA A OBJETOS EN PHP

Diseño Basado en Componentes. Curso 2008 / 09

POLIMORFISMO "una interfaz, múltiples métodos".

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Construcciones del Lenguaje Java

Principios de Computadoras II

Modulo 11. Clases y Objetos en Java

Francisco Javier Peña Escobar Universidad del Valle

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2

Clases y métodos parciales (Guía de programación de C#)

Tema 3b: Estructura General de un programa en Java

Curso de Java orientado a Android Parte 2

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática

Eventos. Nota: Los eventos poseen las siguientes características:

MANUAL DE RUBY (PARTE V) Luis José Sánchez González

Clases y herencia. FJP Unidad 8. Diseño de clases

Guía práctica de estudio 04: Clases y objetos

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

Clases Abstractas e Interfaces

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

Programación Orientada a Objetos

Creando CRUD en PHP: operaciones básicas para la gestión de bases de datos

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Programación páginas web con PHP

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo.

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

Programación con Visual C#

C# para no Programadores

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7

INTRODUCCIÓN A LA POO EN C++

La sintaxis básica para definir una clase es la que a continuación se muestra:

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005

Curso de Java POO: Programación orientada a objetos

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

Transcripción:

PHP5 Orientado a Objetos Hola a todos, en esta ocasión les traigo a ustedes un poco de información acerca de las mejoras introducidas en PHP5 las cuales son principalmente la orientación a objetos que está muy bien lograda en esta nueva versión. Primero debemos entender algunos conceptos de la programación orientada a objetos, comencemos con los constructores. Qué es un constructor? Un constructor es una función que se ejecuta cada vez que se instancia un objeto de una clase. En PHP4 el nombre de dicha función debía ser identifica al nombre de la clase, pero en PHP5, ya existe un nombre unificado para definir un constructor: construct. var $a; $this->a = true; Si PHP no encuentra este nombre de función, buscará un método que se llame igual que la clase, tal y como lo hacía en PHP4. De esta misma manera en PHP5 se incluyeron los destructores, pero sabes que es un destructor? Qué es un destructor? Pues son muy similares que los constructores. Son funciones que ejecutan tareas que necesitamos hacer cuando un objeto ya no está siendo referenciado por ninguna variable, antes de liberar memoria. El nombre unificado de los destructores es: destruct. var $a; $this->a = true; function destruct() { echo "Objeto Destruido"; Los destructores incluyen un código que se ejecuta cuando un objeto se elimina de la memoria.

Modificadores de acceso Bueno vamos entrando en calor, otras de las mejoras que se incluyeron en PHP5 son los modificadores (public, prívate y protected) de acceso sobre las propiedades y los métodos. Public: la propiedad o método es accesible desde cualquier ámbito, incluyendo otras claves. Private: la propiedad o método solo es accesible desde dentro de la clase a la que pertenece. Protected: la propiedad o método sólo es accesible desde dentro de la clase a la que pertenece o desde cualquier clase que derive de ella. public $a; protected $b; private $c; $this->b = 100; function GetB() { return $this->b; echo $Objeto->GetB(); En la versión anterior PHP4, todas las variables y las funciones son públicas. En PHP4, las propiedades se declaraban mediante la palabra reservada var (sinónimo de public) y los métodos se definían con su nombre y argumentos. Así como existen las propiedades de un objeto, también existen las propiedades de una clase (se definen por la palabra static), cuyos valores no dependen específicamente de una instancia en particular. El acceso a los atributos de clase se realiza utilizando el operador ::, y para eso no es necesario instanciar la clase. static $Propiedad = 15; static function ShowValue () { echo ClaseA::$Propiedad; ClaseA::ShowValue();

Nuevos Métodos Un Nuevo método que incluye PHP5 es call, que se ejecuta de manera automática en caso de llamar un método que no está definido en la clase. public $a; $this->a = 100; function GetA() { return $this->a; function call($metodo, $atributos) { echo "El Método $metodo no existe"; echo $Objeto->GetB(); El método call recibe dos argumentos automáticos: el nombre del método inexistente y los parámetros pasados a él en forma de array. Los métodos set y get, en caso de estar definidos, serán invoados cuando se intente acceder, o modificar, el valor de alguna propiedad no declarada en la clase. Clonación de objetos Cuando se crea una instancia de una clase y se asigna esa instancia a otra variable, se dice que se crea un alias del objeto. $ObjetoA = new ClaseA(); $ObjetoB = $ObjetoA; No se duplica el objeto entero como sucedía en PHP4, donde, si queríamos referenciar objetos, debíamos hacerlo de forma explícita. $ObjetoA =& new ClaseA(); $ObjetoB =& $ObjetoA; En PHP5, las variables que representan objetos son referencias a ellos mismos, por lo que no es necesario utilizar el operador & (ampersand). Clases abstractas Las clases abstractas no pueden ser instanciadas y el único fin que tienen es servir como base para otras clases (que si pueden ser instanciadas). Para definir un método abstracto se hace de la siguiente manera.

abstract class Ejemplo { public $Propiedad; abstract function MetodoAbstracto(); Interfaces PHP5 admite el uso de interfaces que se utilizan principalmente para declarar el conjunto de métodos que deberán definir (obligatoriamente) las clases que implementan la interfaz. Las interfaces son definidos utilizando la palabra reservada interface. interface Ejemplo { public function Method1($var); public function Method2(); class ClaseA implements Ejemplo {... Las clases pueden implementar más de una interfaz, separando cada una de ellas mediante el uso del carácter coma (,). class clasea implements interfaza, interfazb, interfazc {... Operador InstanceOf Este operador permite saber si un objeto es una instancia de una determinada clase. include "animales.class.php"; $Obj = new Perro(); $Obj->Nombre = "Valiente"; if($obj instanceof Perro) echo $Obj->Animal().' es un perro'; elseif($obj instanceof Gato) echo $Obj->Animal().' es un gato'; else echo $Obj->Animal().' no es ni perro ni gato'; Autocarga de clases Una de las grandes mejoras de PHP es la función autoload, si está definida, es llamada automáticamente al intentar utilizar una clase que no ha sido definida. function autoload($class) { $File = 'classes/'.$class.'.class.php'; if(file_exists($file)) include $File; else die("no se encuentra el archive de la clase $Class"); $Obj = new MySQL(); //Autoload intentará cargar: /classes/mysql.class.php

Acceso a subobjetos Por último veremos el acceso a subobjetos, recordemos que en PHP4 era necesario trabajar con variables temporales para poder accede a un objeto instanciado dentro de otro. En PHP esto cambio y ya es posible hacerlo de forma directa. public $Propiedad; $this->propiedad = new ClaseB(); class ClaseB { function Message($Mensaje) { echo $Mensaje; $Obj = new ClaseA(); echo $Obj->Propiedad->Mensaje("Hola Mundo"); Bueno espero que estos pequeños ejemplos les hayan sido de utilidad y espero que hayan podido aprender un poco más acerca de PHP5, la próxima publicación será sobre como instalar la nueva versión del sistema operativo Ubuntu 9.04 para aquellas personas que les interese conocerlo, probarlo, olvidarse de los virus y porqué no reemplazarlo por su poco estable Windows (98, XP, Vista, 7). Si gustan profundizar más en el tema les recomiendo que lean el libro de PHP5: Evolución y Madurez de Francisco Minera, muy bueno por cierto. Un Saludo, Atentamente NOTA: Este tutorial fue creado por Carlos Santana Roldán para MilkZoft, si deseas tomar total o parcialmente el contenido publicado te pedimos nos envíes un mensaje utilizando el formulario de contacto y agregando un enlace a MilkZoft como fuente de los datos (puedes insertar el siguiente código en tu blog o página web). Fuente: MilkZoft