Espacio Daycry - Espacio de programación

  • Inicio
  • Categorias
    • - Codeigniter
    • - Symfony
    • - HTML5
    • - Linux / Ubuntu
    • - PHP
    • - Jquery
  • PortFolio - Proyectos Codeiniter
    • - Encuestas Online
    • - Estadísticas - GLPI
    • - Gestión de colas
    • - Web Service - REST

martes, 4 de diciembre de 2012

PROGRAMACIÓN ORIENTADA A OBJETOS (PARTE II)

Posted by daycry at 12:49 Labels: PHP , programación , web



Esta parte es la continuación del blog anterior, que comentábamos, el como crear un objeto a través de una clase y como manipular este objeto con las funciones de que estaban definidas en dicha clase.

Pues bien, en este apartado vamos a hablar de Herencia entre clases, tipos de variables y tipos de funciones.
Primero vamos a definir los conceptos y después veremos unos ejemplos para que quede mucho más claro, ya que a veces puede ser algo confuso.

 Los tipos de variables pueden ser:

- Privadas: cuando a esa variable solo se puede acceder desde la propia clase.

- Protegidas: cuando a esa variables solo se puede acceder desde la propia clase, y clases "hijas". Ya comentaremos mas adelante que es exactamente una clase "hija", pero en definitiva es una clase que hereda funciones de otra clase.

- Públicas: a esa variable se puede acceder desde cualquier parte del código.


 Los tipos de funciones pueden ser:

- Privadas: cuando a esa funciónsolo se puede acceder desde la propia clase.

- Protegidas: cuando a esa funciónsolo se puede acceder desde la propia clase, y clases "hijas".

- Públicas: a esa función se puede acceder desde cualquier parte del código.


Vamos a poner un ejemplo para que se vea como se utiliza la herencia entre clases, incluyendo ejemplos de los términos mencionados anteriormente.

Class Persona{

    private $nombre;
    protected $apellido;

    function __construct(){
        //no inicializa nada, esta función se podría quitar ya que no tratamos ningún dato.
    }

    Protected cambiaNombre ($nombre){
        $this->nombre = $nombre;
    }

}

Hemos creado una Clase Persona con dos variables, una privada y una protegida, y ahora veremos el porque.
Vamos a crear una clase que herede las propiedades de la clase Persona.

Class Abuelo extends Persona{

    private $edad;

    function __contruct (){
    }


    Public function setApellido( $apellido ){
        $this->apellido = $apellido;
    }


    Public function setNombre ( $nombre ){
        $this->cambiaNombre ($nombre);
    }



    Public function setEdad( $edad){
          $this->cambiaEdad($edad);
    }

    Protected function cambiaEdad ( $edad ){
         $this->edad= $edad;
    }



}


Hemos creado una clase Abuelo que hereda las propiedades de Persona, grácias a la propiedad extends.

Ejemplo de utilización

$abuelo = new Abuelo(); //creamos el objeto.

$abuelo->setApellido ("apellidos");

//esta función nos permite modificar el valor de la variable "apellido" de la clase Persona, ya que la variable se ha declarado como "protected", si la variable se hubiera declarado como "private", nos saldría un error indicando que no tenemos permiso para acceder a esa variable.


$abuelo->setNombre ("Daycry");

//como podemos ver la variable nombre tiene la propiedad de "private", y en cambio si que podemos modificar el valor de esa variable, porque lo hacemos mediante una función de la clase "Persona" con la propiedad "protected", y como la función está dentro de la clase Persona, si que nos permite modificar el valor, si la función "cambiaNombre()", fuera "private", desde la clase "Abuelo", no podríamos modificar esa variable desde la clase "Abuelo".

$abuelo->setEdad("78");//modificamos el valor de la variable edad a 78

IMPORTANTE

Todas las funciones que se utilicen fuera de la clase, instanciadas en otra parte del código y necesitemos acceder a ellas, tienen que declararse como "Public", las funciones "Private", y "Protected", sólo se utilizan cuando entre clases.

$abuelo->cambiaEdad("24");

Las funciones cambiaEdad, cambiaNombre, no tenemos acceso a ellas mediante la siguiente forma, porque se han declarado como protected, y no se tiene acceso desde otra parte del código que no sea la própia clase o clases que la hereden.
Tweet

Related Posts

  • PHP - Encriptación y desencriptación ASCII
    PHP - Encriptación y desencriptación ASCII
  • TinyMCE en Codeigniter
    TinyMCE en Codeigniter
  • Encriptación y desencriptación PHP
    Encriptación y desencriptación PHP
  • Creación de librerías en Codeigniter
    Creación de librerías en Codeigniter

1 comentario :

  1. Arkonix18 de noviembre de 2019, 19:04

    ¡Oye! Artículo asombroso Cubriste todo en bitcoin que la gente debería saber. Me he suscrito a su lista de correo, por lo que cada vez que publique un nuevo artículo, puedo mantener una actualización. Sigue compartiendo tales artículos. ¡Aclamaciones!.
    ARKONIX

    ResponderEliminar
    Respuestas
      Responder
Añadir comentario
Cargar más...

Entrada más reciente Entrada antigua Inicio
Suscribirse a: Enviar comentarios ( Atom )

Sígueme en las Redes Sociales



Follow @daycry9



Donaciones

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios

Datos personales

daycry
Ver todo mi perfil

Entradas populares

  • Crear archivos PHP ejecutables por terminal UBUNTU
    En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
  • Pâginación PHP con Librería Zebra Pagination
    En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
  • PHPExcel - Codeigniter
    Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
  • PHP- Operaciones con fechas - Sumar Horas, minutos y segundos
    Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
  • Codeigniter - Múltiples conexiones a base de datos
    Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...

© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool