Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesion 21
Sesion 21
METODOLOGÍAS DE
PROGRAMACIÓN
Características de la Programación
Orientada a Objetos (II)
SESIÓN
21-22
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
Herencia Usuario mediante la computadora con interfaz perfil de egreso
aplicación de los gráfica de usuario, mediante
fundamentos de la La asignatura Metodologías
la utilización de la de Programación, que
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
Herencia
4
Herencia
• Es el proceso mediante el cual un
objeto de una clase adquiere Clase Padre
ClasePadre
Clase Base
propiedades definidas en otra Super Clase
getMatricula() SetMatricula()
getModelo() setModelo()
getPotenciaCV() setPotenciaCV()
6
Ejemplo
7
Herencia Múltiple
Java no soporta
herencia múltiple
8
Sobreescritura o anulación de miembros
de una clase Vehiculo
ruedas: int Superclase
• Como sabemos las clases hijas velocidad: double
heredan los métodos o atributos de la acelerar(int)
clase padre siempre y cuando los frenar(int)
heredados
especificadores de acceso lo permiten.
• Pero las clases hijas los pueden redefinidos
sobrecargar para proporcionar una
nueva versión, pero también los puede Automovil
anular. ruedas: int =4
• Cuando una clase hija por ejemplo combustible: String
define un método o atributo idéntico a cerrarPuertas():void Subclase
un método o atributo de la clase padre, frenar(int)
se dice entonces que sobrescribe o
anula el método o atributo de su padre; Shadowing: ocultación de atributos
es decir prevalece el miembro del hijo. Overriding: Sobreescritura de métodos
9
Anulación de métodos
10
super
• A veces se requiere llamar a un
método de la clase padre que fue
sobrescrito en la clase hija. Eso
se realiza con la palabra
reservada super.
• Si this hace referencia a la clase
actual, super hace referencia a la
clase padre desde la clase hija.
• En el ejemplo desde la clase hija
coche se llama al método
acelerar de la clase padre, el cual
fue sobrescrito por la clase hija.
11
final
• Es una palabra reservada en Java que se coloca antecediendo
en un método, variable o clase.
– Si se usa delante de un método en la definición de clase sirve para indicar que
ese método no puede ser sobrescrito por las clases hijas. Si una clase hija
intenta sobrescribir el método, el compilador de Java avisará el error. Ejemplo:
public final void setA (int x)
{
a=x;
}
– Si se usa delante de una clase, significará que esa clase no puede tener
descendencia. Ejemplo:
public final class Ejemplo {
}
– Si se usa delante de una variable o atributo, entonces éstos pasan a ser
constantes; es decir no se les podrá cambiar de valor en ninguna parte del
código.
13
Conclusiones
• La relación de herencia indica que una clase llamada hija, hereda los atributos y los
métodos de una clase padre siempre y cuando el especificador o modificador de
acceso permita esto.
• Una clase hija puede sobre escribir o anular un atributo o método que ha heredado
del padre.
Próxima sesión
– Ejercicios características de la POO.
14
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.
15