poo
DESCRIPTION
conceptos de programacion orientada a objetoTRANSCRIPT
-
La Programacin Orientado a Objetos
-
Introduccin a la Programacin Orientado a Objetos (POO).
Significado de Orientado a Objetos
-El significado de Orientado a Objetos nace como un conjunto depracticas que definen un estilo de programacin.
- Los seres humanos perciben el mundo como si estuviera formadopor objetos: mesas, sillas, computadoras, coches, cuentasbancarias, etc. Donde conciente o inconscientemente tienden aorganizarlos, clasificarlos, relacionarlos entre si, y hasta extraen lascaractersticas ms importantes dependiendo de lo que quierenhacer con ellas.
-
Las clases y los objetos estn en todas partes
Vehculo
Animal
Figura
-
ConceptoGeneralmente, una clase se puede definir como una descripcin abstracta de un grupo de objetos, cada uno de los cuales tiene una serie de atributos, un estado especfico y es capaz de realizar una serie de operaciones.
Clases
Atributos
Operaciones
Comportamiento
Lavadora
marca
modelo
capacidad...
Programar
PonerRopa
CerrarPuerta
Lavar
-
Objetos
Concepto:
Un objeto, no es ms que una instancia de una clase. La
instancia de una clase significa definir un objeto dndole valoresa sus atributos y comportamiento, y realizando operacionespermitidas por la clase.
Valores de los atributos
Estado
Identidad
ID:Lavadora
marca=Lapava
capacidad=5
estado=enjuagando
-
Programacin Orientada a Objetos
Definicin:La POO es un estilo de programacin, donde todos loselementos que forman parte del problema se conciben comoobjetos, definiendo cuales son sus atributos y comportamiento,como se relacionan entre s y como estn organizadas.
Estructura Interna de un Objeto:
Atributos: Define el estado del objeto
Mtodos: Define el comportamiento del objeto
-
Terminologa de la POO
Clase
Objeto
Atributos
Mtodos
Instancia
Abstraccin
Encapsulamiento
Modularidad
Jerarqua
Generalizacin
Herencia
Asociacin
Agregacin
Polimorfismo
Constructor
Destructor
Miembro Pblico
Miembro Privado
Miembro Protegido
-
Terminologa de la POO
Abstraccin: La abstraccin es la capacidad que
permite representar las caractersticas esenciales de un objeto sin preocuparse de las restantes caractersticas (no esenciales).
Encapsulamiento: Es la propiedad que permiteasegurar que los aspectos externos de un objeto sediferencie de sus detalles internos.
-
Terminologa de la POO
Modularidad: La modularidad es la propiedad que
permite dividir una aplicacin en partes mspequeas ( llamadas mdulos ), cada una de lascuales debe ser tan independiente como sea posible
de la aplicacin en si y de las restantes partes.
Jerarqua: Es una clasificacin u ordenacin de las
abstracciones.
-
Terminologa de la POO
Generalizacin: Una clase que comparte atributos ymtodos similares con otras clases se le llamasuperclase o clase padre. Cuando definimos unaclase padre estamos generalizando.
Herencia: Del mismo modo, cuando definimos una clase a partir de una clase padre estamos creando una subclase. La definicin de una subclase se le denomina herencia.
-
Terminologa de la POO
Asociacin: Una asociacin es una relacinsemntica entre objetos. Cuando un objeto accede alos atributos y mtodos de otro objeto estamosdefiniendo una asociacin entre ellos.
Agregacin: La agregacin es una relacin quedefine que un objeto es parte de otro objeto. Cuandodefinimos que un objeto tiene como atributo otroobjeto decimos que es una agregacin. A travs de laagregacin se definen objetos compuestos.
-
Terminologa de la POO
Polimorfismo: Es el mecanismo de definir unmismo mtodo en varios objetos de diferentes clasespero con distintas formas de implementacin.
Constructor: Es un mtodo que se invoca cuandoun objeto es construido
Destructor: Es un mtodo que se invoca cuando unobjeto es destruido.
-
Terminologa de la POO
Miembro Pblico: Atributo o mtodo de una claseque puede ser accesado desde cualquier parte delprograma. Nota: Cuando se declara una propiedad con lapalabra "var" se considera pblica.
Miembro Privado: Atributo o mtodo de una claseque puede ser accesado solo dentro de esa clase.
Miembro Protegido: Atributo o mtodo de unaclase que puede ser accesado desde esa clase y susclases heredadas.
-
Definicin de clase en PHP
class NombreClase {
[public | private | protected ] $nombreVariable;
[public | private | protected ] function nombreMetodo($parametros) {
//Cuerpo de la funcin
}
[public | private | protected ] function __construct($parametros) {
//Cuerpo de la funcin
}
function __destruct() {
//Cuerpo de la funcin
}
}
-
La palabra reservada $this
class NombreClase {
[public | private | protected ] $nombreVariable;
[public | private | protected ] function nombreMetodo_1($parametros) {
//Cuerpo de la funcin;
}
[public | private | protected ] function nombreMetodo_2($parametros) {
$this->nombre_variable = valor;
$this->nombreMetodo_1 ($parametros);
}
}
-
Ejemplo
class clasePersona {
private $nombre;
private $anio_nacimento;
private $edad;
public $estado_civil;
public function __construct($nombre, $anio_nacimiento) {
$this->nombre = $nombre;
$this->anio_nacimiento = $anio_nacimiento;
}
private function calcular_edad($anio_actual) {
$edad = $anio_actual - $this->anio_nacimiento;
return $edad;
}
.
}
-
Ejemplo
class Persona {
.
public function obtener_nombre() {
return $this->nombre;
}
public function obtener_edad($anio_actual) {
$anio_actual = date(Y,mktime());
$this->edad = $this->calcular_edad($anio_actual);
return $this->edad;
}
}
-
Construccin y Manipulacin de Objetos
Creacin de un objeto
$objeto = new NombreClase($parametros);
Acceso a un atributo de una clase
$objeto->variable = valor;
Acceso a un metodo o funcin de una clase
$objeto->nombreMetodo($parametros);
-
Ejemplo
$persona1 = new clasePersona("Juan", 1983);//instanciacin
$persona1->estado_civil = "soltero;
echo "1) El estado civil de la persona 1 es: ". $persona1->estado_civil . ";
$persona2 = new clasePersona("Maria", 1987); //instanciacin
$persona2->estado_civil = "casada;
echo "2) El estado civil de la persona 2 es: ". $persona2->estado_civil . ";
echo "3) El nombre de la persona 1 es: ". $persona1->obtener_nombre(). "";
echo "4) El nombre de la persona 2 es: ". $persona2->obtener_nombre(). "";
echo "5) La edad de la persona 1 es: ". $persona1->obtener_edad(). "";
echo "6) La edad de la persona 2 es: ". $persona2->obtener_edad(). "";