SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

03 Oop
03   Oop03   Oop
03 Oop
Network Sens
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
Luis Fernando Aguas Bucheli
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Presentacion5
Presentacion5Presentacion5
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
Eric Gustavo Coronel Castillo
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
Tecnologico
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
mellcv
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
PEDRO OSWALDO BELTRAN CANESSA
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
jhordy2000
 
Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
Eric Gustavo Coronel Castillo
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en java
Javier
 
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)
CodeSyntax
 
Tema2
Tema2Tema2
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
Cesar Mcfly
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
Gloria Isabel Bautista Lasprilla
 
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
Alvaro Enrique Ruano
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
Network Sens
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
ricardomore94
 
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
Renny Batista
 
Presentacion4
Presentacion4Presentacion4

La actualidad más candente (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
 

Similar a 9-Unidad 3: Encapsulamiento y modularidad

03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
Daniel Gomez Jaramillo
 
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
Angel Vázquez Patiño
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdf
ChiquteRobledo
 
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 polimorfismo
Angel 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.pptx
juan gonzalez
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
Jyoc X
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
Uniminuto - San Francisco
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Kositha Jimhiz G
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
Richard Eliseo Mendoza Gafaro
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
maeusogo
 
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 2
mellcv
 
Act10byme
Act10bymeAct10byme
Act10byme
karinaaura
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
Christian Simbaña
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
Arigol15Gomez
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
Robert Wolf
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
FamiliaAyluardo
 

Similar a 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
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
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
 
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
 

Más de Luis Fernando Aguas Bucheli

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

Más de 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
 

Último

PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
OMORDO
 
Periodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdfPeriodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdf
PAULINACASTRUITAGARC
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ArnulfoPerezPerez2
 
Luces piloto y contactores Presentación fn.pptx
Luces piloto y contactores Presentación fn.pptxLuces piloto y contactores Presentación fn.pptx
Luces piloto y contactores Presentación fn.pptx
Fran115
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfEstilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
ElisaLen4
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
jahirrtorresa
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
ronnyrocha223
 
DIAGRAMA DE FLUJO DE ALGORITMO .......
DIAGRAMA DE FLUJO  DE  ALGORITMO .......DIAGRAMA DE FLUJO  DE  ALGORITMO .......
DIAGRAMA DE FLUJO DE ALGORITMO .......
taniarivera1015tvr
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Eliana Gomajoa
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
LuisAngelGuarnizoBet
 
aplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdfaplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdf
MiguelZapata93
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 

Último (20)

PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
 
Periodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdfPeriodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdf
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
 
Luces piloto y contactores Presentación fn.pptx
Luces piloto y contactores Presentación fn.pptxLuces piloto y contactores Presentación fn.pptx
Luces piloto y contactores Presentación fn.pptx
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfEstilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdf
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
 
DIAGRAMA DE FLUJO DE ALGORITMO .......
DIAGRAMA DE FLUJO  DE  ALGORITMO .......DIAGRAMA DE FLUJO  DE  ALGORITMO .......
DIAGRAMA DE FLUJO DE ALGORITMO .......
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
 
aplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdfaplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdf
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 

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