39
UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA Volumen 1 Principios de la Principios de la Programación Programación Orientada a Orientada a Objetos Objetos

UNIDAD 0 - REPASO - POO

Embed Size (px)

Citation preview

Page 1: UNIDAD 0 - REPASO - POO

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

Page 2: UNIDAD 0 - REPASO - POO

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

Page 3: UNIDAD 0 - REPASO - POO

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

Page 4: UNIDAD 0 - REPASO - POO

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

Page 5: UNIDAD 0 - REPASO - POO

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

Page 6: UNIDAD 0 - REPASO - POO

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

Page 7: UNIDAD 0 - REPASO - POO

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

Page 8: UNIDAD 0 - REPASO - POO

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

Page 9: UNIDAD 0 - REPASO - POO

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

Page 10: UNIDAD 0 - REPASO - POO

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

Page 11: UNIDAD 0 - REPASO - POO

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”

Page 12: UNIDAD 0 - REPASO - POO

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”

Page 13: UNIDAD 0 - REPASO - POO

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

Page 14: UNIDAD 0 - REPASO - POO

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

Page 15: UNIDAD 0 - REPASO - POO

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

Page 16: UNIDAD 0 - REPASO - POO

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

Page 17: UNIDAD 0 - REPASO - POO

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

Page 18: UNIDAD 0 - REPASO - POO

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

Page 19: UNIDAD 0 - REPASO - POO

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”

Page 20: UNIDAD 0 - REPASO - POO

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

Page 21: UNIDAD 0 - REPASO - POO

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

Page 22: UNIDAD 0 - REPASO - POO

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

Page 23: UNIDAD 0 - REPASO - POO

UNIVERSIDAD GRAN MARISCAL DE AYACUCHO - FACULTAD DE INGENIERIA – NUCLEO BARCELONA

Unidad 2

Clases y ObjetosClases y Objetos

Page 24: UNIDAD 0 - REPASO - POO

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

Page 25: UNIDAD 0 - REPASO - POO

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

Page 26: UNIDAD 0 - REPASO - POO

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

Page 27: UNIDAD 0 - REPASO - POO

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)

Page 28: UNIDAD 0 - REPASO - POO

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

Page 29: UNIDAD 0 - REPASO - POO

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

Page 30: UNIDAD 0 - REPASO - POO

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. }

Page 31: UNIDAD 0 - REPASO - POO

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. }

Page 32: UNIDAD 0 - REPASO - POO

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

Page 33: UNIDAD 0 - REPASO - POO

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

Page 34: UNIDAD 0 - REPASO - POO

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

Page 35: UNIDAD 0 - REPASO - POO

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

Page 36: UNIDAD 0 - REPASO - POO

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

Page 37: UNIDAD 0 - REPASO - POO

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

Page 38: UNIDAD 0 - REPASO - POO

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

Page 39: UNIDAD 0 - REPASO - POO

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