martes, 4 de diciembre de 2012
PROGRAMACIÓN ORIENTADA A OBJETOS (PARTE II)
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.
- 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.
- 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;
}
}
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.
$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.
Suscribirse a:
Enviar comentarios
(
Atom
)
Sígueme en las Redes Sociales
Donaciones
Datos personales
Entradas populares
-
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...
-
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...
-
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...
-
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 ...
-
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
¡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!.
ResponderEliminarARKONIX