Guía de poo en php

20
Guía de POO en PHP Integrantes: Abril Gómez Gil 221111491 Daniel Flores Saladino 221110220

description

 

Transcript of Guía de poo en php

Guía de POO en PHPIntegrantes:

Abril Gómez Gil 221111491Daniel Flores Saladino 221110220

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.

1

Método y Atributos:<?php

function nombreMetodo(parámetros) {// Código del Método}//Metodo para sumar dos enterosfunction 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;}

?> 

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

2

<?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");

?>

3Diferentes 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.

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.

4

 

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

  

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

?>

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.

El constructor5

<?phpclass 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;

?>

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.

6

<?phpclass 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'

?>

7El polimorfismo

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 abstractaabstract class AnimalAbstract{protected $_energiaConsumida = 0; public function getEnergiaConsumida() { return $this->_energiaConsumida; }} // creamos la clase perro que hereda la clase animalclass Perro extends AnimalAbstract{ public function correr() { $this->_energiaConsumida += 50; }} // creamos la clase leon que hereda la clase animalclass Leon extends AnimalAbstract{ public function correr() { if ($this->_energiaConsumida > 160){ $this->_energiaConsumida += 100 ; } else { $this->_energiaConsumida += 80 ; } }}

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ó

8

<?php/** * Definición de MyClass */

class MyClass{ public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private';

  function printHello() { echo $this->public; echo $this->protected; echo $this->private; }}

 $obj = new MyClass();echo $obj->public; // Funciona bienecho $obj->protected; // Error Fatalecho $obj->private; // Error Fatal$obj->printHello(); // Muestra Public,

Protected y Private

/** * 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 printHello() { echo $this->public; echo $this->protected; echo $this->private; }}

 $obj2 = new MyClass2();echo $obj2->public; // Funciona bienecho $obj2->protected; // Error Fatalecho $obj2->private; // Undefined$obj2->printHello(); // Muestra Public,

Protected2, Undefined ?>

9Clase Abstracta

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";

?>

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).

10