2. 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.
3. LAS CLASES Y LOS OBJETOS
ESTÁN EN TODAS PARTES
Vehículo
Animal
Figura
4. CLASES
Concepto
Generalmente, 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.
Atributos
Operaciones
Comportamiento
Lavadora
marca
modelo
capacidad...
Programar
PonerRopa
CerrarPuerta
Lavar
5. 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=5
estado=enjuagando
6. 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
8. 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.
9. 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.
10. 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.
11. 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.
12. 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.
13. 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.
14. TERMINOLOGÍA DE LA
POO
Paradigma: El paradigma de programación
representa un enfoque particular o filosofía para la
construcción del software.
El enfoque no es mejor uno que otro sino que cada
uno tiene ventajas y desventajas. También hay
situaciones donde un paradigma resulta más
apropiado que otro.
15. El paradigma de programación se
refiere a:
¿Estilo de Programación?
Manera de Visualizar y Resolver Problemas de Programación
Procedural, Imperativo
Lógico, Declarativo
Visual
Paralelo
Orientado a Objetos
Filosofía
Historia, Objetivos y Metas
Modelos y Enfoques
Conceptos
Principios
Soporte
Notación, Metodologías
Herramientas y Tecnologías
16. EL LENGUAJE UNIFICADO DE
MODELADO (UML)
UML es un lenguaje para hacer modelos y es independiente de los métodos de
análisis y diseño. Existen diferencias importantes entre un método y un lenguaje
de modelado. Un método es una manera explícita de estructurar el pensamiento y
las acciones de cada individuo. Además, el método le dice al usuario qué hacer,
cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de
modelado carece de estas instrucciones. Los métodos contienen modelos y esos
modelos son utilizados para describir algo y comunicar los resultados del uso del
método.
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado
consiste de vistas, diagramas, elementos de modelo ¾ los símbolos utilizados en
los modelos ¾ y un conjunto de mecanismos generales o reglas que indican
cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas.
17. Los principales beneficios de UML son:
Mejores tiempos totales de desarrollo (de 50 % o más).
Modelar sistemas (y no sólo de software) utilizando conceptos orientados a
objetos.
Establecer conceptos y artefactos ejecutables.
Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
Mejor soporte a la planeación y al control de proyectos.
Alta reutilización y minimización de costos.
18. 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;
}
….
}
19. Alumno: MACEDONIO TRINIDAD EDEL
Carrera: ING. ELECTRÓNICA
Materia: PROGRAMACIÓN VISUAL.
Docente: ING. GUILLERMINA JIMÉNEZ RASGADO
20. 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;
}
}
21. 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);