You are on page 1of 17

Unidad I Unidad II Unidad III

METODOLOGÍAS DE
PROGRAMACIÓN
Características de la Programación
Orientada a Objetos (I)
SESIÓN

20
Ing. Ernesto Nicho Córdova
www.usat.edu.pe ncordova@usat.edu.pe
Presentación inicial

• Marcar asistencia
Propósito de la sesión

Objetivo
Resultado de Aprendizaje UNIDAD 01
Comprende y aplica
las características de
Construye programas de
Logro de la asignatura
la programación computadora en Java con
orientada a objetos: Interfaces Gráficas de
Competencias de
Construye programas de
Abstracción, Usuario mediante la computadora con interfaz perfil de egreso
aplicación de los gráfica de usuario, mediante
Encapsulamiento y fundamentos de la La asignatura Metodologías
la utilización de la de Programación, que
polimorfismo. programación orientada a metodología y un lenguaje
objetos corresponde al área de
de programación orientada estudios Específicas,
a objetos. contribuye al logro del perfil
de egreso, específicamente
a las competencias:
• CE3: DESARROLLO DE SOFTWARE
• CG2: RESOLUCIÓN DE
PROBLEMAS CON RIGOR
CIENTÍFICO

3
Contenidos

Abstracción

Encapsulamiento

Polimorfismo

Clases abstractas e interfaces

Herencia
4
Abstracción

• La abstracción según [1] es la propiedad de los objetos que


consiste en tener en cuenta sólo los aspectos más importantes
desde un punto de vista determinado y no tener en cuenta los
restantes aspectos.
• Aplicando la abstracción se es capaz de construir, analizar y
gestionar sistemas de computadoras complejos y grandes que no
se podrían diseñar si se tratara de modelar a un nivel detallado.
• En cada nivel de abstracción se visualiza el sistema en términos
de componentes, denominados herramientas abstractas, cuya
composición interna se ignora.

5
Abstracción (2)
• Implementar el objeto automóvil

6
Abstracción (3)
• En los lenguajes de programación orientada a objetos, el
concepto de Clase es la representación y el mecanismo por el
cual se gestionan las abstracciones. Decidir el conjunto correcto
de abstracciones de un determinado dominio, es el problema
central del diseño orientado a objetos.[7]
Los mecanismos de abstracción usados en el enfoque
OO

Generalización: Las características Agregación: La clase objeto es definida


semejantes son enfatizadas y las a partir de sus partes componentes.
diferentes son ignoradas.

7
Abstracción (4)

es_un

GENERALIZACIÓN AGREGACIÓN

8
Encapsulamiento
• El encapsulamiento consiste en unir en la clase las características
y comportamientos, esto es, las variables y métodos. Es tener
todo esto es una sola entidad, bajo la misma unidad de
programación.
• La encapsulación es el mecanismo que enlaza el código y los
datos, a la vez que los asegura frente a accesos no deseados.
• La idea central del encapsulamiento es esconder los detalles y
mostrar lo relevante. Permite el ocultamiento de la información
separando el aspecto correspondiente a la especificación de la
implementación; de esta forma, distingue el "qué hacer" del "cómo
hacer". La especificación es visible al usuario, mientras que la
implementación se le oculta.[5]
9
Encapsulamiento (2)

10
Polimorfismo

• La propiedad de polimorfismo es aquella en que una operación


tiene el mismo nombre en diferentes clases, pero se ejecuta de
diferentes formas en cada clase.[1]
• Por esta característica, podemos enviar el mismo mensaje a
objetos de diferentes clases, de forma que cada uno de ellos
responde a ese mismo mensaje de modo distinto dependiendo de
su implementación. No confundir con sobrecarga, el
polimorfismo se aplica sólo a métodos que tienen la misma
signatura pero están definidos en clases diferentes.

11
Ejemplos de polimorfismo
El operador +

int a = 10, b = 5 ,c ;
c = a + b;
Figura2D
{abstract} String a = “10”, b = “5” ,c ;
- dim1: float c = a + b;
- dim2: float
+ setDim1(d1:float)
+ setDim2(d2: float)
+ getDim1(): float
+ getDim2(): float
+ area(): float

Triángulo Rectángulo

+ area(): float + area(): float

12
Clases abstractas e interfaces

• Una clase abstracta es una clase que <<abstract>>


Figura
no se puede instanciar se usa # x: int
únicamente para definir subclases. # y: int
+ setX(d1:int)
En cuanto uno de sus métodos no + setY(d2: int)
+ getX(): int

tiene implementación (en Java, el + getY(): int


+ area(): float

método abstracto se etiqueta con la


Cuadrado Círculo
palabra reservada abstract). Se - lado - radio
utilizan las clases abstractas cuando + area(): float + area(): float

se desea definir una abstracción que


englobe objetos de distintos tipos y
se quiere hacer uso del polimorfismo.
13
Interfaz
• Una interfaz es una clase completamente
abstracta (una clase sin implementación). En <<interface>>

el ejemplo anterior, si no estuviera interesada Figura

en conocer la posición de una Figura, + area(): float

podríamos eliminar por completo su


implementación y convertir Figura en una
interfaz: Cuadrado Círculo
- lado - radio
+ area(): float + area(): float

14
Conclusiones
• Las características más resaltantes de la Programación Orientada a Objetos son:
Abstracción, Encapsulamiento, Herencia y Polimorfismo.
• La abstracción permite gestionar la complejidad de los objetos y capturar lo principal
de la realidad analizada.
• La principal razón del uso de la encapsulación es evitar el acceso directo a atributos
de una clase desde fuera de la propia clase.
• Polimorfismo no es sobrecarga, permite utilizar el mismo método (de distintas clases)
con el mismo nombre y parámetros (pero con comportamiento distintos según el
objeto)
Próxima sesión
– Características de la POO - Herencia.

15
Referencias
• [1] L. Joyanes, Fundamentos de programación. Algoritmos, estructura de datos y
objetos, 4a ed. Madrid: McGraw-Hill, 2008.
• [2] P. Deitel y H. Deitel, Como programar en Java, 10a ed. México: Pearson
Educación, 2016.
• [3] P. Sznajdleder, Java a Fondo, 3a ed. Buenos Aires: Alfaomega, 2016.
• [4] B. Eckel, Piensa en Java, 4a ed. Madrid: Pearson Educación, 2007.
• [5] Departamento de Formación, Fundamentos de la programación en Java. INSA,
2017.
• [6] A. Jiménez Marín y F. Pérez Montes, Aprende a programar con Java. Un
enfoque práctico de cero, 2a ed. Madrid: Paraninfo, 2016.
• [7] Y. Pascuas, Compilado de Programación II. Fundamentos de programación
orientada a Objetos. Florencia: Universidad de la Amazonía, 2014.
16

You might also like