Download - P O O
![Page 1: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/1.jpg)
La Programación Orientado a Objetos
![Page 2: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/2.jpg)
Introducción a la Programación Orientado a Objetos (POO).
Significado de Orientado a Objetos-El significado de Orientado a Objetos nace como un conjunto de practicas que definen un estilo de programación.
- Los seres humanos perciben el mundo como si estuviera formado por objetos: mesas, sillas, computadoras, coches, cuentas bancarias, etc. Donde conciente o inconscientemente tienden a organizarlos, clasificarlos, relacionarlos entre si, y hasta extraen las características más importantes dependiendo de lo que quieren hacer con ellas.
![Page 3: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/3.jpg)
Las clases y los objetos están en todas partes
Vehículo
Animal
Figura
![Page 4: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/4.jpg)
ConceptoGeneralmente, una clase se puede definir como una descripción abstracta de un grupo de objetos, cada uno de los cuales tiene una serie de atributos, un estado específico y es capaz de realizar una serie de operaciones.
Clases
Atributos Operaciones Comportamiento
Lavadoramarcamodelocapacidad...
ProgramarPonerRopaCerrarPuertaLavar
![Page 5: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/5.jpg)
Objetos
Concepto:Un objeto, no es más que una instancia de una clase. La instancia de una clase significa definir un objeto dándole valores a sus atributos y comportamiento, y realizando operaciones permitidas por la clase.
Valores de los atributos
Estado Identidad
ID:Lavadora
marca=“Lapava”capacidad=5estado=enjuagando
![Page 6: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/6.jpg)
Programación Orientada a Objetos
Definición:La POO es un estilo de programación, donde todos los elementos que forman parte del problema se conciben como objetos, definiendo cuales son sus atributos y comportamiento, como se relacionan entre sí y como están organizadas.
Estructura Interna de un Objeto:
Atributos: Define el estado del objeto
Métodos: Define el comportamiento del objeto
![Page 7: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/7.jpg)
Terminología de la POO Clase Objeto Atributos Métodos Instancia Abstracción Encapsulamiento Modularidad Jerarquía Generalización
Herencia Asociación Agregación Polimorfismo Constructor Destructor Miembro Público Miembro Privado Miembro Protegido
![Page 8: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/8.jpg)
Terminología de la POO
Abstracción: La abstracción es la capacidad que permite representar las características esenciales de un objeto sin preocuparse de las restantes características (no esenciales).
Encapsulamiento: Es la propiedad que permite asegurar que los aspectos externos de un objeto se diferencie de sus detalles internos.
![Page 9: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/9.jpg)
Terminología de la POO Modularidad: La modularidad es la propiedad
que permite dividir una aplicación en partes más pequeñas ( llamadas módulos ), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en si y de las
restantes partes.
Jerarquía: Es una clasificación u ordenación
de las abstracciones.
![Page 10: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/10.jpg)
Terminología de la POO Generalización: Una clase que comparte
atributos y métodos similares con otras clases se le llama superclase o clase padre. Cuando definimos una clase padre estamos generalizando.
Herencia: Del mismo modo, cuando definimos una clase a partir de una clase padre estamos creando una subclase. La definición de una subclase se le denomina herencia.
![Page 11: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/11.jpg)
Terminología de la POO Asociación: Una asociación es una relación
semántica entre objetos. Cuando un objeto accede a los atributos y métodos de otro objeto estamos definiendo una asociación entre ellos.
Agregación: La agregación es una relación que define que un objeto es parte de otro objeto. Cuando definimos que un objeto tiene como atributo otro objeto decimos que es una agregación. A través de la agregación se definen objetos compuestos.
![Page 12: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/12.jpg)
Terminología de la POO Polimorfismo: Es el mecanismo de definir un
mismo método en varios objetos de diferentes clases pero con distintas formas de implementación.
Constructor: Es un método que se invoca cuando un objeto es construido
Destructor: Es un método que se invoca cuando un objeto es destruido.
![Page 13: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/13.jpg)
Terminología de la POO Miembro Público: Atributo o método de una
clase que puede ser accesado desde cualquier parte del programa.
Miembro Privado: Atributo o método de una clase que puede ser accesado solo dentro de esa clase.
Miembro Protegido: Atributo o método de una clase que puede ser accesado desde esa clase y sus clases heredadas.
![Page 14: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/14.jpg)
Definición de clase en PHPclass NombreClase {
[public | private | protected ] $nombreVariable;
[public | private | protected ] function nombreMetodo($parametros) {//Cuerpo de la función
}
[public | private | protected ] function __construct($parametros) { //Cuerpo de la función
}
function __destruct() { //Cuerpo de la función
}}
![Page 15: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/15.jpg)
La palabra reservada $thisclass NombreClase {
[public | private | protected ] $nombreVariable;
[public | private | protected ] function nombreMetodo_1($parametros) {
//Cuerpo de la función;}
[public | private | protected ] function nombreMetodo_2($parametros) {
$this->nombre_variable = valor;$this->nombreMetodo_1 ($parametros);
}}
![Page 16: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/16.jpg)
Ejemploclass 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;
}
….}
![Page 17: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/17.jpg)
Ejemploclass 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;
}
}
![Page 18: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/18.jpg)
Construcción y Manipulación de Objetos
Creación de un objeto
$objeto = new NombreClase($parametros);
Acceso a un atributo de una clase
$objeto->variable = valor;
Acceso a un metodo o función de una clase
$objeto->nombreMetodo($parametros);
![Page 19: P O O](https://reader036.vdocuments.co/reader036/viewer/2022082819/563db81f550346aa9a90c610/html5/thumbnails/19.jpg)
Ejemplo$persona1 = new clasePersona("Juan", 1983);$persona1->estado_civil = "soltero“;
echo "1) El estado civil de la persona 1 es: ". $persona1->estado_civil . "<br><br>“;
$persona2 = new clasePersona("Maria", 1987);$persona2->estado_civil = "casada“;
echo "2) El estado civil de la persona 2 es: ". $persona2->estado_civil . "<br><br>“;
echo "3) El nombre de la persona 1 es: ". $persona1->obtener_nombre(). "<br><br>";
echo "4) El nombre de la persona 2 es: ". $persona2->obtener_nombre(). "<br><br>";
echo "5) La edad de la persona 1 es: ". $persona1->obtener_edad(). "<br><br>";
echo "6) La edad de la persona 2 es: ". $persona2->obtener_edad(). "<br><br>";