Guía de poo en php

Page 1

Gu铆a de POO en PHP Integrantes: Abril G贸mez Gil 221111491 Daniel Flores Saladino 221110220


1 Elementos que conforman una clase

 Atributo: Desde el punto de vista del diseño Orientado a objetos y desde el punto de vista de la programación Orienta a Objetos son los elementos que caracterizan a la clase, por definición se debe pensar en ellos como variables globales para la clase. Se conocen como tipos de datos básicos enteros, dobles, lógicos textos y posiblemente cualquier clase del modelo.  Métodos: Los métodos en PHP son bastante útiles para poder encapsular una funcionalidad especifica en un solo lugar y poder reutilizar ese código muchas veces. Es por ello que vamos a ver como podemos crear un método en PHP.


 Método y Atributos: <?php

function nombreMetodo(parámetros) { // Código del Método } //Metodo para sumar dos enteros function sumar($i,$j){ .... }

$i=intval(trim($i)); //obtener parte entera de $i $j=intval(trim($j)); //obtener parte entera de $j return $i+$j; function sumar($i,$j){ $i=intval(trim($i)); $j=intval(trim($j)); return $i+$j; }

?>


2

this Utilizado en programación orientada a objetos y se define $this dentro de un objeto como un puntero al objeto en que está contenido. La palabra this está disponible para hacer referencia al objeto en el que se encuentra y puede ser utilizada en cualquier objeto


<?php class xero{ var $nick; function escribe($nombre){ echo "Tu anterior nick es:",$this->nick; $this->nick=$nombre; echo "<br>Tu actual nick es:",$this->nick,"<br>"; } } $variable=new xero(); $variable->escribe("Xero"); $variable->escribe("Nixo"); ?>


Diferentes formas para el paso de argumentos a un método  Existen tres formas de dar valor a variables en PHP en páginas web. Formularios, enlaces HTML y sesiones.  $_GET y $_POST son dos de las variables superglobales que vimos antes. Por tener ámbito global, los valores que se incluyan mediante estos dos métodos estarán disponibles en la página siguiente. Mediante estos métodos podemos pasar determinados valores de una pagina a otra.  El método que se desee usar se indica en la propiedad "Method", y la página a la cual deseo enviar la información se indica en la propiedad "Action" del formulario.  Es importante recordar que $_GET y $_POST son arreglos que tienen posiciones asociativas, es decir, cada posición en el arreglo tiene un nombre, y ese nombre es el mismo que tiene cada campo del formulario.

3



4

Devolver un valor desde un método  Los métodos en PHP son bastante útiles para poder encapsular una funcionalidad especifica en un solo lugar y poder reutilizar ese código muchas veces.  Para crear un método en PHP hacemos uso de la palabra reservada function seguido del nombre del método, los paréntesis con o sin parámetros del método entre los paréntesis.


<?php function sumar($i,$j){ $i=intval(trim($i)); $j=intval(trim($j)); return $i+$j; }

echo echo echo echo ?>

Sumar(200,797)."<br>"; Sumar('123','97')."<br>"; Sumar('123.78','97.90')."<br>"; Sumar('b','a')."<br>";


5 El constructor  Los constructores son funciones en una clase que son invocadas automáticamente cuando se crea una nueva instancia de una clase con new. Una función se vuelve un constructor, cuando tiene el mismo nombre que la clase. Si una clase no tiene constructor, el constructor de la clase base será invocado, si es que existe.


<?php class A { function A() { echo "I am the constructor of A.<br />\n"; } function B() { echo "I am a regular function named B in class A.<br />\n"; echo "I am not a constructor in A.<br />\n"; } } class B extends A { } // Esto invocarรก a B() como un constructor $b = new B; ?>


6

Herencia  La herencia es un principio de programación bien establecido y PHP hace uso de él en su modelado de objetos. Este principio afectará la manera en que muchas clases y objetos se relacionan unas con otras.  Por ejemplo, cuando se extiende una clase, la subclase hereda todos los métodos públicos y protegidos de la clase padre. A menos que una clase sobrescriba esos métodos, mantendrán su funcionalidad original.


<?php class foo { public function printItem($string) { echo 'Foo: ' . $string . PHP_EOL; } public function printPHP() { echo 'PHP is great.' . PHP_EOL; } } class bar extends foo { public function printItem($string) { echo 'Bar: ' . $string . PHP_EOL; } } $foo = new foo(); $bar = new bar(); $foo->printItem('baz'); // Salida: 'Foo: baz' $foo->printPHP(); // Salida: 'PHP is great' $bar->printItem('baz'); // Salida: 'Bar: baz' $bar->printPHP(); // Salida: 'PHP is great' ?>


El polimorfismo

7

 En la POO el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.  La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.


<?php // creamos la clase abstracta abstract class AnimalAbstract { protected $_energiaConsumida = 0; public function getEnergiaConsumida() { return $this->_energiaConsumida; } } // creamos la clase perro que hereda la clase animal class Perro extends AnimalAbstract { public function correr() { $this->_energiaConsumida += 50; } } // creamos la clase leon que hereda la clase animal class Leon extends AnimalAbstract { public function correr() { if ($this->_energiaConsumida > 160){ $this->_energiaConsumida += 100 ; } else { $this->_energiaConsumida += 80 ; } } }


8

Diferencia entre public, private, protected  La visibilidad de una propiedad o método se puede definir anteponiendo una de las palabras claves public, protected o private en la declaración. Los miembros de clases declarados como public pueden ser accedidos desde cualquier lado. Los miembros declarados como protected, sólo desde la misma clase, desde las clases que hereden de ella y desde las clases parent. Aquellos miembros definidos como private, únicamentede pueden ser accedidos desde la clase que los definió


<?php /** * Definici贸n de MyClass */ class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function { echo echo echo }

/** * Definici贸n de MyClass2 */ class MyClass2 extends MyClass { // Se puede redeclarar los m茅todos public y protected, pero no el private protected $protected = 'Protected2'; function { echo echo echo }

printHello() $this->public; $this->protected; $this->private;

} $obj = new MyClass(); echo $obj->public; echo $obj->protected; echo $obj->private; $obj->printHello(); Protected y Private

// // // //

Funciona bien Error Fatal Error Fatal Muestra Public,

printHello() $this->public; $this->protected; $this->private;

} $obj2 = new MyClass2(); echo $obj2->public; // echo $obj2->protected; // echo $obj2->private; // $obj2->printHello(); // Protected2, Undefined ?>

Funciona bien Error Fatal Undefined Muestra Public,


Clase Abstracta

9

 Las clases definidas como abstract no se pueden instanciar y cualquier clase que contiene al menos un método abstracto debe ser definida como abstract. Los métodos definidos como abstractos simplemente declaran la estructura del método, pero no pueden definir la implementación.  Cuando se hereda de una clase abstracta, todos los métodos definidos como abstract en la definición de la clase parent deben ser redefinidos en la clase child; adicionalmente, estos métodos deben ser definidos con la misma visibilidad (o con una menos restrictiva).


<?php abstract class AbstractClass { // El método abstracto sólo necesita definir los parámetros requeridos abstract protected function prefixName($name);

} class ConcreteClass extends AbstractClass { // La clase derivada puede definir parámetros opcionales que no estén en la estructura del prototipo public function prefixName($name, $separator = ".") { if ($name == "Daniel") { $prefix = "Mr"; } elseif ($name == "Abril") { $prefix = "Mrs"; } else { $prefix = ""; } return "{$prefix}{$separator} {$name}"; } } $class = new ConcreteClass; echo $class->prefixName("Daniel"), "\n"; echo $class->prefixName("Abril"), "\n";


10

Interfaz  La interfaz, por lo tanto, es una conexión entre dos máquinas de cualquier tipo, a las cuales les brinda un soporte para la comunicación entre distintos niveles. Es posible entender la interfaz como un espacio (el lugar donde se desarrolla la interacción y el intercambio), instrumento (a modo de extensión del cuerpo humano, como el mouse que permite interactuar con una computadora) o superficie (el objeto que aporta información a través de su textura, forma o color).


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.