SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Unidad 3: Encapsulamiento
y modularidad
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas
Programación Orientada a Objetos
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
“Ciertos libros son hechos para ser
probados, otros para ser tragados y
unos pocos son hechos para ser
masticados y digeridos.
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Programación Orientada a Objetos
Resultado de Aprendizaje
• Aplicar los lenguajes de programación en el diseño y
desarrollo de sistemas con interfaces de usuario orientadas a
humanos, usables y accesibles.
Contenidos
• Introducción
• Objetivos
• Desarrollo de Contenidos
• Conclusiones
• Bibliografía
Objetivos
• Adquirir los conceptos básicos relacionados con Java.
• Reconocer las características de Java.
• Conocer la historia de Java.
3.1 Clases abstractas e Interfaces
7
• Todas las clases son descendientes de la clase Object
• La cláusula extends especifica el ancestro inmediato de la
clase
• Una subclase o clase derivada hereda todos los campos y
métodos de la superclase o clase base
• Java soporta herencia simple (sólo una clase base)
Herencia en Java
"hereda de"
"extiende"
"is a"
ancestro
superclase
clase base
descendientes
subclases
clases derivadas
8
class Figura {
int x, y;
public void print() { ... }
public void setX(int x) { this.x = x; }
public void setY(int y) { this.y = y; }
}
class Rectangulo extends Figura {
int largo, ancho;
public void setLargo(int largo) { this.largo = largo; }
public void setAncho(int ancho) { this.ancho = ancho; }
}
class App {
void f() {
Rectangulo r = new Rectangulo();
r.setX(10); r.setY(20);
r.setAncho(100); r.setLargo(300);
Ejemplo
La clase Circulo es derivada de la
clase base Figura
La clase Circulo hereda métodos
setX y setY de clase base Figura
9
Encapsulamiento
• Una clase derivada tiene acceso a los miembros
public y protected de una clase base, aunque
pertenezcan a paquetes diferentes
• Una clase derivada tiene acceso a los miembros
package de una clase base si ambas clases
pertenecen al mismo paquete
• Una clase derivada no tiene acceso a los
miembros private de una clase base
10
Circulo circulo;
circulo = new Circulo();
Figura figura;
figura = circulo;
circulo
figura
Compila y ejecuta bien (un círculo es una figura)
Restricción: no se puede usar figura para acceder a métodos
especializados de Circulo
figura.getRadio(); // no compila
Polimorfismo
11
Polimorfismo
• Java permite asignar un objeto a una variable
declarada con un tipo de datos ancestro
void metodo1(Figura f) {
f.print();
...
}
void metodo2() {
metodo1(new Circulo());
}
12
public class DTE {
...
public void validar() {
...
}
}
public class Factura extends DTE {
public void validar() {
super.validar();
...
}
}
Reescritura de Métodos
Reescritura del método validar() en
clase derivada (la firma y el tipo de
retorno coinciden con los de la clase
base)
Invocación a funcionalidad provista
en la clase base, para extender en
lugar de reemplazar
13
• Al invocar un método no static, el tipo real del
objeto sobre el que se invoca el método — y no
el tipo de la referencia — es utilizado para
determinar qué versión del método invocar
• El tipo del objeto sobre el que se invoca el
método se obtiene en tiempo de ejecución, por
eso esta funcionalidad recibe el nombre de
dynamic binding, o late binding
void procesarDTE(DTE dte) {
dte.validar();
...
}
Dynamic Binding
Dynamic binding: invoca a
Factura.validar() si dte es una
referencia a una Factura
14
• Java es fuertemente tipeado, exige
compatibilidad de tipos en tiempo de
compilación:
o Permite asignar un objeto a una variable de un
tipo ancestro
o Permite asignar un objeto a una variable de un
tipo descendiente, pero exige que se explicite este
uso, mediante un cast (si el cast falla en
ejecución, la máquina virtual lanza un
ClassCastException)
Factura factura = (Factura) dte;
o No permite realizar una conversión de un objeto a
un tipo que no es ancestro ni descendiente
Compatibilidad de Tipos
15
• El método getClass de la clase Object retorna un
objeto de tipo Class correspondiente a la clase real a
la que pertenece el objeto
• El operador instanceof indica si un objeto es de una
clase determinada o de alguna clase descendiente
if (dte instanceof Factura) {
Factura factura = (Factura) dte;
// uso de factura
}
Identificación de Tipo
Ojo, no abusar de este mecanismo!
(hacerlo significa que se está programando
de manera tradicional, sin obtener los
beneficios de la OOP)
Gracias
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
Bibliografía

Weitere ähnliche Inhalte

Was ist angesagt? (20)

03 Oop
03   Oop03   Oop
03 Oop
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en java
 
Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)Introducción a la programación en Python (día 2)
Introducción a la programación en Python (día 2)
 
Tema2
Tema2Tema2
Tema2
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 

Ähnlich wie 9-Unidad 3: Encapsulamiento y modularidad

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfChiquteRobledo
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos Marielena Lujano
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptxjuan gonzalez
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc X
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha Jimhiz G
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2mellcv
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributosRobert Wolf
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 

Ähnlich wie 9-Unidad 3: Encapsulamiento y modularidad (20)

03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdf
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Act10byme
Act10bymeAct10byme
Act10byme
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 

Mehr von Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Kürzlich hochgeladen

ENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONJOHNNY SURI MAMANI
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxOSCARADRIANMEDINADUR
 
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxaxelalejossantos
 
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdfLUISSANDOVALJIMENEZ
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfAnthony Gualpa
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfElenaNagera
 
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptx
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptxENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptx
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptxjosetuanama2
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdffredyflores58
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaJoellyAlejandraRodrg
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfEsvinAlvares
 
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALRiveraPemintelAlejan
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfciteagrohuallaga07
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfDarwinJPaulino
 
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdf
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdfPLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdf
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdfmcamposa87
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptxJOSLUISCALLATAENRIQU
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptxHenryApaza12
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasPatriciaRaimondi
 

Kürzlich hochgeladen (20)

ENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACIONENFOQUE METODOLOGICO DE LA INVESTIGACION
ENFOQUE METODOLOGICO DE LA INVESTIGACION
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptx
 
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptxACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
ACEROS DE PERFORACION, CARACTERISTICAS Y FICHAS TECNICAS.pptx
 
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
224154649-Diseno-Por-Flexion-de-Zapata-Aislada-y-de-Hormigon-Simple.pdf
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdf
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
 
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptx
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptxENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptx
ENSAYO DE PENETRACIÓN ESTÁTICA CTP ULTRADEFINITIVO.pptx
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdf
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadística
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
 
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
 
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdf
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdfPLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdf
PLANTILLA DE PP PREVENCIONISTA DE RIESGOS LABORALES (1).pptx.pdf
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitarias
 

9-Unidad 3: Encapsulamiento y modularidad

  • 1. Unidad 3: Encapsulamiento y modularidad Autor(es): Ciencias de la Ingeniería Carrera de Sistemas Programación Orientada a Objetos Mg. Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft Laguas@uisrael.edu.ec Aguaszoft@Outlook.es
  • 2. “Ciertos libros son hechos para ser probados, otros para ser tragados y unos pocos son hechos para ser masticados y digeridos. (Anónimo) Ciencias de la Ingeniería Carrera de Sistemas de Información Programación Orientada a Objetos
  • 3. Resultado de Aprendizaje • Aplicar los lenguajes de programación en el diseño y desarrollo de sistemas con interfaces de usuario orientadas a humanos, usables y accesibles.
  • 4. Contenidos • Introducción • Objetivos • Desarrollo de Contenidos • Conclusiones • Bibliografía
  • 5. Objetivos • Adquirir los conceptos básicos relacionados con Java. • Reconocer las características de Java. • Conocer la historia de Java.
  • 6. 3.1 Clases abstractas e Interfaces
  • 7. 7 • Todas las clases son descendientes de la clase Object • La cláusula extends especifica el ancestro inmediato de la clase • Una subclase o clase derivada hereda todos los campos y métodos de la superclase o clase base • Java soporta herencia simple (sólo una clase base) Herencia en Java "hereda de" "extiende" "is a" ancestro superclase clase base descendientes subclases clases derivadas
  • 8. 8 class Figura { int x, y; public void print() { ... } public void setX(int x) { this.x = x; } public void setY(int y) { this.y = y; } } class Rectangulo extends Figura { int largo, ancho; public void setLargo(int largo) { this.largo = largo; } public void setAncho(int ancho) { this.ancho = ancho; } } class App { void f() { Rectangulo r = new Rectangulo(); r.setX(10); r.setY(20); r.setAncho(100); r.setLargo(300); Ejemplo La clase Circulo es derivada de la clase base Figura La clase Circulo hereda métodos setX y setY de clase base Figura
  • 9. 9 Encapsulamiento • Una clase derivada tiene acceso a los miembros public y protected de una clase base, aunque pertenezcan a paquetes diferentes • Una clase derivada tiene acceso a los miembros package de una clase base si ambas clases pertenecen al mismo paquete • Una clase derivada no tiene acceso a los miembros private de una clase base
  • 10. 10 Circulo circulo; circulo = new Circulo(); Figura figura; figura = circulo; circulo figura Compila y ejecuta bien (un círculo es una figura) Restricción: no se puede usar figura para acceder a métodos especializados de Circulo figura.getRadio(); // no compila Polimorfismo
  • 11. 11 Polimorfismo • Java permite asignar un objeto a una variable declarada con un tipo de datos ancestro void metodo1(Figura f) { f.print(); ... } void metodo2() { metodo1(new Circulo()); }
  • 12. 12 public class DTE { ... public void validar() { ... } } public class Factura extends DTE { public void validar() { super.validar(); ... } } Reescritura de Métodos Reescritura del método validar() en clase derivada (la firma y el tipo de retorno coinciden con los de la clase base) Invocación a funcionalidad provista en la clase base, para extender en lugar de reemplazar
  • 13. 13 • Al invocar un método no static, el tipo real del objeto sobre el que se invoca el método — y no el tipo de la referencia — es utilizado para determinar qué versión del método invocar • El tipo del objeto sobre el que se invoca el método se obtiene en tiempo de ejecución, por eso esta funcionalidad recibe el nombre de dynamic binding, o late binding void procesarDTE(DTE dte) { dte.validar(); ... } Dynamic Binding Dynamic binding: invoca a Factura.validar() si dte es una referencia a una Factura
  • 14. 14 • Java es fuertemente tipeado, exige compatibilidad de tipos en tiempo de compilación: o Permite asignar un objeto a una variable de un tipo ancestro o Permite asignar un objeto a una variable de un tipo descendiente, pero exige que se explicite este uso, mediante un cast (si el cast falla en ejecución, la máquina virtual lanza un ClassCastException) Factura factura = (Factura) dte; o No permite realizar una conversión de un objeto a un tipo que no es ancestro ni descendiente Compatibilidad de Tipos
  • 15. 15 • El método getClass de la clase Object retorna un objeto de tipo Class correspondiente a la clase real a la que pertenece el objeto • El operador instanceof indica si un objeto es de una clase determinada o de alguna clase descendiente if (dte instanceof Factura) { Factura factura = (Factura) dte; // uso de factura } Identificación de Tipo Ojo, no abusar de este mecanismo! (hacerlo significa que se está programando de manera tradicional, sin obtener los beneficios de la OOP)
  • 16. Gracias Mg. Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft Laguas@uisrael.edu.ec Aguaszoft@Outlook.es