unidad 0 - repaso - poo
TRANSCRIPT
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Volumen 1
Principios de la Principios de la Programación Programación
Orientada a ObjetosOrientada a Objetos
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
• Programación orientada a procedimientos:
o Los programas son estructurados con base a sus funciones
• Programación orientada a objetos:
o Los programas son implementados y organizados como una colección cooperativa de entidades, cada una representando algún elemento (entidad) en el mundo real
o La programación orientada a objetos persigue simular o representar las entidades del mundo real y su uso en forma natural en la resolución de un problema de computación
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Programación orientada a objetos
• El paradigma de la programación orientada a objetos usualmente tiene las siguientes características:
o Simula actividades del mundo real
o Tiene tipos de datos definidos por los usuarios
o Esconde los detalles de la implementación
o Re-usa códigos a través de la herencia
o Permite el mismo nombre para diferentes funcionalidades
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Programación orientada a objetos
• Pilares de la Programación Orientada a Objetos:
o Abstracción
o Encapsulamiento
o Modularidad
o Herencia
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Abstracción
• Las entidades del mundo real tienen un sin número de características y funciones asociadas de las cuales no todas son de relevancia para la solución de un problema
• La abstracción es la técnica que permite reconocer los elementos esenciales para la solución de un problema dejando de lado los detalles irrelevantes
• La abstracción consiste en crear un modelo simplificado de una entidad del mundo real
AbstracciónAbstracción
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Abstracción
• Interfaz – El método adoptado en la presentación de una entidad en el mundo real - Externa
• Implementación – El procedimiento adoptado para facilitar a una entidad la ejecución de sus funciones - interna
Elementos de una entidad Elementos de una entidad
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Encapsulamiento
• El encapsulamiento es el concepto que ayuda a mantener juntos los datos y las funciones (procedimientos) que operan sobre éstos
• Las funciones y procedimientos que pertenecen a una entidad cualquiera se conocen como funciones miembro o métodos
• El encapsulamiento complementa el concepto de abstracción, mediante el ocultamiento de información
EncapsulamientoEncapsulamiento
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Encapsulamiento
El Paradigma Procedural El Paradigma Procedural
Implementación de Operaciones
sobre Datos y Estructuras
Definición de
Datos y Estructuras
• En el paradigma procedural, los datos y las operaciones permanecen separados
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Encapsulamiento
El Paradigma de la orientación a El Paradigma de la orientación a objetosobjetos
Implementación de Operaciones sobre Datos y Estructuras
Definición de
Datos y Estructuras
• En el paradigma de la orientación a objetos, tanto los datos como las operaciones que actúan sobre ellos están envueltos en una cápsula
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Modularidad
ModularidadModularidad
• La Modularidad involucra la división de un sistema completo de software en partes más pequeñas y manejables denominadas módulos
• Encapsulación y Modularidad se complementan
• El encapsulamiento esconde los detalles de la implementación y la Modularidad permite el agrupamiento lógico de entidades relacionadas
• La Encapsulación y la Modularidad aseguran que una ‘interfaz limpia’ esté disponible para los usuarios de la entidad
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Herencia - Jerarquía
JerarquíaJerarquía
• La jerarquía se refiere a la clasificación u ordenamiento de abstracciones
• Las abstracciones que conforman un sistema completo están basadas en un orden particular
• Las estructuras “es un” y “tiene un”, están asociadas con la jerarquía
• La herencia pertenece a la jerarquía “es un” mientras que la Agregación pertenece a la jerarquía “tiene un”
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Herencia
HerenciaHerencia
• La herencia implica que una entidad B comparte la estructura y conducta de una entidad A
• En este contexto, la entidad A es llamada la “superclase” (o la clase base), y la entidad B es llamada la “subclase” (o la clase derivada)
Herencia entre las entidades Vehículo y Automóvil
Superclase
Subclase
Vehículo
Automóvil
“es-un”
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Pilares: Herencia
HerenciaHerencia
• Las subclases pueden especializar algunas características heredando las características de la entidad original y re-definiendo dichas características.
• La herencia se refiere así a una relación generalización-especialización entre entidades
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Herencia y Jerarquía
Jerarquía en la Herencia Jerarquía en la Herencia
HumanoHumano
EuropeoEuropeo AsiáticoAsiático
FrancésFrancés ItalianoItaliano
SicilianoSiciliano NapolitanoNapolitano
HindúHindú CoreanoCoreano
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Herencia Múltiple
Ejemplos de Herencia Múltiple Ejemplos de Herencia Múltiple
AnimalAnimal
AnimalTerrestreAnimal
TerrestreAnimal
AcuáticoAnimal
Acuático
AnimalAnfibioAnimalAnfibio
ProfesorProfesor EstudianteEstudiante
PreparadorPreparador
• Es posible para una subclase heredar de mas de una superclase
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Agregación
Agregación Agregación
• Es posible para una entidad contener a otra entidad
• Esto es denominado como una relación “tiene un” entre entidades
AutomóvilAutomóvil
AsientoAsientoPuertaPuerta MaleteroMaletero
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Ocultamiento de Información
Ocultamiento de Información Ocultamiento de Información
• Debido al encapsulamiento, los datos y la implementación de las operaciones son escondidas al usuario
• Teniendo los datos miembros y sus operaciones encapsuladas, el usuario sólo necesita saber cómo acceder a las operaciones
• El ocultamiento de información y las interfases se unen para garantizar la seguridad de los datos y el cumplimiento de las reglas y validaciones en el uso de las entidades
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Polimorfismo
Polimorfismo Polimorfismo
• Polimorfismo es la técnica de usar una interfaz para múltiples implementaciones
• Permite a las entidades tener diferentes estructuras internas para compartir la misma interfaz externa
• Polimorfismo significa un nombre y múltiples funciones
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Polimorfismo
Polimorfismo Polimorfismo
CírculoAtributos: radio = 3.6Funciones: area()= pi*radio*radio
CírculoAtributos: radio = 3.6Funciones: area()= pi*radio*radio
TriánguloAtributos: base = 2.0 altura = 4.0Funciones: area()= base*altura/2.0
TriánguloAtributos: base = 2.0 altura = 4.0Funciones: area()= base*altura/2.0
RectánguloAtributos: lado1 = 3.5 lado2 = 2.5Funciones: area()= lado1*lado2
RectánguloAtributos: lado1 = 3.5 lado2 = 2.5Funciones: area()= lado1*lado2
Figura_GeométricaAtributos:Funciones: area()
Figura_GeométricaAtributos:Funciones: area()
“es-un” “es-un” “es-un”
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Desarrollo de Sistemas Orientados a Objetos
Ventajas Ventajas
• Reusabilidad
– Cuando el comportamiento es heredado desde otra entidad, no se necesita reescribir el código
– Esto ahorra costos de mantenimiento– Proporciona una forma eficiente de compartir el
mismo código
• Desarrollo Rápido de Prototipos– Cuando un sistema de software se diseña
básicamente con componentes reutilizables, el tiempo de desarrollo se puede usar para comprender el nuevo sistema
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Desarrollo de Sistemas Orientados a Objetos
Beneficios Beneficios • Promete elevar los niveles de productividad de los
programadores, software de mejor calidad y menor costo de mantenimiento
• Los programas se pueden construir desde módulos de trabajo estándares que se comunican unos con otros. Permite ahorrar tiempo de desarrollo e incrementar la productividad
• Facilita dividir el trabajo en proyectos basados en entidades
• Es posible tener múltiples instancias de una entidad coexistiendo sin interferencias
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Desarrollo de Sistemas Orientados a Objetos
Beneficios Beneficios • Los programadores pueden construir programas más
seguros que no puedan ser invadidos por código de otras partes del sistema
• La herencia elimina el código redundante y extiende el uso de las entidades existentes
• El enfoque centrado en los datos permite capturar más detalles del modelo para la implementación
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Unidad 2
Clases y ObjetosClases y Objetos
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Entidades del Mundo Real
Entidades Entidades
• Las entidades son los objetos, conceptos e ideas del mundo real
• La lista de entidades en el mundo real es infinita• Algunos ejemplos de entidades en el mundo real son:
–Florista
–Estudiante
–Libro
–Tarjeta de registro
–Formato de reservación
–Cliente
–Cuenta de ahorros
–Talón de retiro
–Reloj
–Tabla
–Miembro de biblioteca
–Tarjeta de biblioteca
–Flor
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Entidades del Mundo Real
• Podemos agrupar algunas de las entidades de la lista anterior en las siguientes categorías:o Estudiantes, Tarjeta de registroo Miembro de biblioteca, Tarjeta de biblioteca, Libroo Cliente, Talón de retiro, Cuenta de ahorroso Florista, Flor
• Las entidades se agrupan de acuerdo a su conducta• Por conducta entendemos las responsabilidades de
una entidad en el mundo real• Los términos conducta y responsabilidades son
normalmente usados indistintamente cuando se discute la tecnología orientada a objetos
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
Clases Clases
• En el análisis existen entidades que representan elementos del mundo real.
• En el entorno de la solución existen las clases como tipos de datos definidos por el usuario
• Las clases son la descripción de un tipo de dato • Las variables creadas a partir de un tipo de dato clase,
son denominadas instancias u objetos de la clase• Las clases son tipos de datos agregados definidos por
el usuario
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
Clases vs. Entidades Clases vs. Entidades
Cliente
Cuenta de Ahorros
Cuenta Corriente
Planilla de Deposito
Cliente
Cuenta de Ahorros
Cuenta Corriente
Planilla de Deposito
Cliente del
Banco
Cliente del
Banco
Cuenta deAhorrosCuenta deAhorros
CuentaCorrienteCuentaCorriente
Planilla deDepositoPlanilla deDeposito
• Relación entre el Mundo Real y el Mundo Orientado a Objetos - (Escenario Bancario)
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
• Las clases contienen tanto los datos miembros representando los tipos, como las funciones miembros que implementan operaciones en esos tipos
• Una clase es similar a una estructura en C • Para describir el tipo de dato Estudiante definido
por el usuario, podemos identificar los siguientes datos miembros: o Nombre del estudianteo Edad del estudianteo Dirección del estudianteo Disciplinas en las que el estudiante fue admitidoo Cursos registrados por el estudiante en un
semestre
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
Vistas de una Clase Vistas de una Clase
• Clase con Interfaz e Implementación
Atributos(Datos miembro)
Atributos(Datos miembro)
Conducta(Funciones miembro)
Conducta(Funciones miembro)
Interfaz(Pública, revelada)
Interfaz(Pública, revelada)
Implementación(Privada, escondida)
Implementación(Privada, escondida)
• Clase con datos y operaciones
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
Definición de la clase Círculo Definición de la clase Círculo 1.// Declaración de clase Círculo (Entidad)2. public class Circulo{
3. private float radio; // Atributos privados
4. private final float pi= 3.14159f;
5. // Interfaz
6. public float area(){ // No recibe parámetros
7. return(pi * radio * radio); //retorna el área
8. }
9. public float getRadio(){ // Para leer el radio
10. return radio; // Retorna el valor del radio
11. }
12. public void setRadio(float rad){ // Para modificar el radio13. if (rad > 0.0) // Radio debe ser mayor que cero14. radio= rad; // Establece el valor del radio
15. else return;
16. }
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases en la Orientación a Objetos
Definición de la clase Círculo Definición de la clase Círculo
16. // Función main
17. public static void main(String args[]){
18. Circulo objCirc_1= new Circulo(); //Instancia de objeto Círculo
19. objCirc_1.setRadio(3.6f); // Establece el radio en 3.6
20. System.out.println("El Area del Circulo de radio 3.6 es: "+ objCirc_1.area()); //Impresión por pantalla
21. }
22. }
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Objetos en la Orientación a Objetos
Objetos Objetos
• Una definición simple de un objeto es que constituye una instancia de una clase
• Los objetos interactúan unos con otros para proveer una solución a un problema
• La clase es sólo la descripción del tipo de dato, el objeto es el que ocupa memoria en el computador
• Al momento de crear instancias o variables de la clase, el compilador reserva la cantidad de memoria adecuada para el tipo de dato solicitado
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Objetos en la Orientación a Objetos
Objetos Objetos
• De un objeto puede decirse que tiene lo siguiente: o Estado, en un momento dado o Identidad, que es única entre objetos del sistema o Conducta, que usualmente son las operaciones
sobre los datos de esa clase • La estructura y conducta de objetos similares son
definidas en su clase común
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Objetos en la Orientación a Objetos
Estado:• El estado de un objeto son las propiedades y los
valores que estas propiedades toman en un momento dado
Identidad:• La identidad de un objeto se refiere a la manera
única por la cual el objeto es conocido, referido, y distinguido de todos los demás objetos del sistema
Conducta:• La conducta se refiere a las responsabilidades que
el objeto ofrece asumir y cumplir.• Es también la forma cómo un objeto reacciona a
los cambios de estado
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Objetos en la Orientación a Objetos
Métodos:• Los métodos son los algoritmos usados por la clase
para implementar las tareas ofrecidas por la interfase
• También se usa el término función miembro
Mensajes:• Un mensaje es el mecanismo usado por un objeto
para tomar una tarea llevada a cabo por otro objeto• Un mensaje puede cambiar el estado del objeto
receptor • Un mensaje puede tomar ninguno o más
argumentos específicos • Cuando un mensaje es enviado, el nombre del
objeto es asociado con el mensaje
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases Abstractas
Clases Abstractas Clases Abstractas
• Existen circunstancias en las que se necesita crear clases que encapsulen el comportamiento general de ciertas entidades
• Estas clases por si mismas no pueden ser instanciadas como objetos
• Ellas simplemente proporcionan una interfaz que la clase derivada hereda e implementa
• Estas clases son útiles para describir a un nivel más alto el comportamiento general de las entidades del mundo real
• Se conocen como clases abstractas
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Ejemplo de Clases Abstractas
Clases Abstractas Clases Abstractas
Clases concretas
Clases Clases abstractasabstractas
VehículoVehículo
Vehículo
Terrestre
Vehículo
Terrestre
Vehículo
Aéreo
Vehículo
Aéreo
Vehículo
Acuático
Vehículo
Acuático
Vehículo de dos Ruedas
Vehículo de dos Ruedas
Vehículo de cuatro Ruedas
Vehículo de cuatro Ruedas
BicicletaBicicleta AutomóvilAutomóvil
AeroplanoAeroplano
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases y Objetos
Identificación de Clases Identificación de Clases
• El primer paso en la construcción de un modelo de objetos es identificar las clases relevantes del dominio de la aplicación
• Al identificar las clases es posible establecer los limites del problema a resolver
• Todas las clases deben tener significado en el dominio de la aplicación
• Se debe establecer un esquema para agrupar objetos en clases
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA
Clases y Objetos
Identificación de Clases Identificación de Clases
• Los pasos básicos de la técnica de depuración de sustantivos son los siguientes:
o Establecer la lista inicial de sustantivos que formaran las clases candidatas
o Depurar la lista inicial de clases de clases candidatas
o Identificar los atributos de las clases
o Asignar responsabilidades a las clases