SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
ENTERPRISE JAVA DEVELOPER
JAVA ORIENTADO A OBJETOS
Eric Gustavo Coronel Castillo
gcoronelc.blogspot.com
INTERFACES
Temas
 Objetivo
 Interface
 Diferencia entre Clase Concreta, Abstracta e
Interface
 Polimorfismo
 Operador instanceof
 Casting
 Ligadura Estática y Dinámica
 Paquetes (Packages)
 Control de Acceso a los Miembros de una
Clase
 Proyecto Ejemplo
OBJETIVOS
 Aplicar interfaces en el diseño de componentes software.
 Aplicar el polimorfismo en el diseño de componentes software
Empleado
+ getSueldo() : Single
Contratado
+ getSueldo() : Single
+ getBonificacion() : Single
SinContrato
+ getSueldo() : Single
• Solo contienen operaciones (métodos) sin implementación, es decir solo la firma (signature).
• Las clases son las encargadas de implementar las operaciones (métodos) de una o varias
Interfaces (Herencia múltiple).
• Se dice que se crean Interface cuando sabemos que queremos y no sabemos como hacerlo y lo
hará otro o lo harán de varias formas (polimorfismo).
public interface IPersona {
public void operacion1();
public void operacion2();
}
public class Empleado implements IPersona {
public void operacion1() {
//implementa el método de la interface
}
public void operacion2() {
//implementa el método de la interface
}
public void operacion3() {
//implementación
}
}
Interface
Métodos sin
implementación
(Clase Concreta)
tiene la obligación
de implementar
los métodos de la
Interface
Realización
INTERFACE
Ejemplo de Herencia múltiple de Interface.
public interface IPersona {
public void operacion1();
public void operacion2();
}
public class Empleado
implements Ipersona, IMantenimiento {
// Implementa los métodos de las interfaces
// . . .
// . . .
// . . .
}
public interface IMantenimiento {
public void insertar();
public void eliminar();
public void modificar();
}
INTERFACE
CLASE CONCRETA, ABSTRACTA E INTERFACE
CARACTERISTICA CLASE CONCRETA CLASE ABSTRACTA INTERFACE
HERENCIA
extends
(simple)
extends
(simple)
implements
(múltiple)
INSTANCIABLE
Si No No
IMPLEMENTA
Métodos Algunos métodos Nada
DATOS
Se permite Se permite No se permite*
* Las variables que se declaran en una interface son implícitamente estáticas, finales y publicas.
• Se dice que existe polimorfismo cuando un método de una clase es implementado de varias formas
en otras clases.
• Algunos ejemplos de Polimorfismos de herencia son: sobre-escritura, implementación de métodos
abstractos (clase abstracta e interface).
• Es posible apuntar a un objeto con una variable de tipo de clase padre (supercalse), esta sólo podrá
acceder a los miembros (campos y métodos) que le pertenece.
// Variable de tipo Empleado y apunta a un
// objeto de tipo Contratado.
Empleado objEmp = new Contratado();
// Invocando sus métodos
double S = objEmp.getSueldo(); //OK
double B = objEmp.getBonificacion(); //Error
Empleado
+ getSueldo() : Single
Contratado
+ getSueldo() : Single
+ getBonificacion() : Single
SinContrato
+ getSueldo() : Single
POLIMORFISMO
• El método getGratificacion puede recibir objetos de Empleado o subtipos a este.
• Cuando invoque el método getSueldo se ejecutará la versión correspondiente al objeto referenciado.
public class Planilla {
public static double
getGratificacion(Empleado Emp){
return Emp.getSueldo() * 1.5;
}
}
// Usando la clase Planilla
double G1 = Planilla.getGratificacion(new Contratado());
double G2 = Planilla.getGratificacion(new SinContratado());
POLIMORFISMO
• Este operador permite verificar si el objeto es instancia de un tipo especifico.
public class Planilla {
public static double getGratificacion(Empleado Emp){
if (Emp instanceof Contratado)
return Emp.getSueldo() * 1.5;
if (Emp instanceof SinContratado)
return Emp.getSueldo() * 1.2;
}
}
//Usando la clase Planilla
double G1 = Planilla.getGratificacion(new Contratado());
double G2 = Planilla.getGratificacion(new SinContratado());
OPERADOR instanceof
• Para restablecer la funcionalidad completa de un objeto, que es de un tipo y hace referencia a otro
tipo, debe realizar una conversión (Cast).
• UpCasting: Conversión a clases superiores de la jerarquía de clases (Herencia), es automático
(conversión implícita), basta realizar la asignación.
• DownCasting: Conversión hacia abajo, es decir hacia las subclases de la jerarquía (Herencia), es
recomendable realizar Cast (conversión explicita), si no es compatible genera un error (Excepción).
// UpCasting (Conversión implícita)
Contratado a = new Contratado();
Empleado b = a;
// DownCasting (Conversión explícita)
Empleado a = new Contrtado();
Contratado b = (Contratado)a;
// Error de compilación
SinContrato a = new SinContrato();
Contratado b = (Contratado)a;
CASTING
• Esta relacionado con el momento que los nombres de variables se ligan (enlazan) con sus tipos de datos.
• Ligadura (enlace) estática o temprana: Consiste en fijar el tipo de dato de las variables en tiempo de
compilación.
• Ligadura (enlace) dinámica o tardía: Consiste en fijar el tipo de dato de las variables en tiempo de ejecución, es
decir una variable de un tipo puede almacenar objetos de otros tipos de la jerarquía de clases.
// LIGADURA ESTÁTICA
Empleado a = new Empleado();
// LIGADURA DINÁMICA
Empleado a;
a = new Empleado();
// Obtener el sueldo del empleado
double s = a.getSueldo();
// Obtener el sueldo del empleado Contratado
a = new Contratado();
double s = a.getSueldo();
// Obtener el sueldo del empleado SinContrato
a = new SinContrato();
double s = a.getSueldo();
Empleado
+ getSueldo() : Single
Contratado
+ getSueldo() : Single
+ getBonificacion() : Single
SinContrato
+ getSueldo() : Single
LIGADURA ESTÁTICA Y DINÁMICA
• Organiza y agrupa un conjunto de clases, interfaces, subpaquetes y otros.
• La creación de paquetes evita el conflicto de nombre de clases, además un paquete puede
contener clases, campos y métodos que están disponible sólo dentro del paquete.
• Observe la siguiente figura usando notación UML, y responda ¿Qué operaciones (métodos)
tendrá la clase Class3?
PAQUETES (PACKAGES)
Para definir un paquete se usa la instrucción package y para utilizar clases de otro paquete,
indique la ruta del paquete antes del nombre de la clase o la instrucción import.
// Definiendo un paquete
package paquete1;
// Clase asociada al paquete
public class Class1() { . . . };
// Definiendo un paquete
package paquete1;
// Clase asociada al paquete
public class Class2 extends Class1
{ . . . };
// Definiendo un paquete
package paquete2;
// Importando todas las clases del paquete
import paquete1.*;
//Clase asociada al paquete
public class Class3 extends Class2 implements Interface1
{ . . . };
// Definiendo un paquete
package paquete2;
// Interface asociada al paquete
public interface Interface1() { . . . };
PAQUETES (PACKAGES)
 Se conoce 4 formas de controlar el acceso a los campos (atributos) y métodos (operaciones) de las clases.
 private ( - ): Acceso sólo dentro de la clase.
 package (~) : Acceso sólo dentro del paquete.
 protected ( # ): Acceso en la clase, dentro del paquete y en subclases (herencia dentro o fuera del
paquete).
 public ( + ): Acceso desde cualquier parte.
CONTROL DE ACCESO A LOS MIEMBROS DE UNA CLASE
Acceso
Visibilidad
Misma
Clase
Mismo Paquete SubClases
y
Mismo Paquete
Universal
public ( + ) Sí Sí Sí Sí
protected ( # ) Sí Sí Sí No
package (~) Sí Sí No No
private ( - ) Sí No No No
PROYECTO EJEMPLO
 La institución educativa EduTec cuenta con dos tipos de trabajadores: Empleados y Docentes.
 Los empleados cuentan con un sueldo fijo y depende del cargo que ocupa, según la siguiente
tabla:
 El sueldo del docente está en función de las horas que dicta, el pago por hora es de 120 Nuevos
Soles.
 El departamento de recursos humanos necesita una aplicación para calcular la bonificación que se
debe pagar a cada trabajador según el siguiente cuadro:
CARGO SUELDO
Coordinador 5,000.00
Asistente 4,000.00
Secretaria 3,000.00
TRABAJADOR BONIFICACIÓN
Empleado 100% del Sueldo
Docente 70% del Sueldo
Dirección de descarga: https://goo.gl/TDgc5R
ENTERPRISE JAVA DEVELOPER
JAVA ORIENTADO A OBJETOS
Eric Gustavo Coronel Castillo
gcoronelc.blogspot.com
Gracias

Weitere ähnliche Inhalte

Was ist angesagt? (20)

JAVA ORIENTADO A OBJETOS - SOBRECARGA
JAVA ORIENTADO A OBJETOS - SOBRECARGAJAVA ORIENTADO A OBJETOS - SOBRECARGA
JAVA ORIENTADO A OBJETOS - SOBRECARGA
 
JAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACESJAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACES
 
Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
 
Poo
PooPoo
Poo
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F M
 
Clases y subclases
Clases y subclasesClases y subclases
Clases y subclases
 
Prog oo con_java
Prog oo con_javaProg oo con_java
Prog oo con_java
 
Clase 2 Poo
Clase 2 PooClase 2 Poo
Clase 2 Poo
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
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
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Clase viii
Clase viiiClase viii
Clase viii
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la poo
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 

Andere mochten auch

JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESJAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESEric Gustavo Coronel Castillo
 
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORESJAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORESEric Gustavo Coronel Castillo
 
Interfaz e interfaces
Interfaz e interfacesInterfaz e interfaces
Interfaz e interfacesVictor Cabral
 

Andere mochten auch (20)

Java Fundamentos 01 - Introducción
Java Fundamentos 01 - IntroducciónJava Fundamentos 01 - Introducción
Java Fundamentos 01 - Introducción
 
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBCSEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
 
Java OO - Tema 07 - Arreglos
Java OO - Tema 07 - ArreglosJava OO - Tema 07 - Arreglos
Java OO - Tema 07 - Arreglos
 
Java Lambda
Java LambdaJava Lambda
Java Lambda
 
Java OO - Tema 03 - Sobrecarga
Java OO - Tema 03 - SobrecargaJava OO - Tema 03 - Sobrecarga
Java OO - Tema 03 - Sobrecarga
 
Java oo tema09_excepciones
Java oo tema09_excepcionesJava oo tema09_excepciones
Java oo tema09_excepciones
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Buenas Prácticas en el Desarrollo de Software
Buenas Prácticas en el Desarrollo de SoftwareBuenas Prácticas en el Desarrollo de Software
Buenas Prácticas en el Desarrollo de Software
 
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOSJAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
 
Java web Lección 04 - JSTL
Java web Lección 04 - JSTLJava web Lección 04 - JSTL
Java web Lección 04 - JSTL
 
Git y GitHub
Git y GitHubGit y GitHub
Git y GitHub
 
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESJAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
 
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTMLJAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
 
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORESJAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES
JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES
 
Java web 01 - servlets
Java web 01 - servletsJava web 01 - servlets
Java web 01 - servlets
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
Java Web Lección 03 - MVC
Java Web Lección 03 - MVCJava Web Lección 03 - MVC
Java Web Lección 03 - MVC
 
Java Web 00 - Contexto
Java Web 00 - ContextoJava Web 00 - Contexto
Java Web 00 - Contexto
 
CIUDADES DIGITALES
CIUDADES DIGITALESCIUDADES DIGITALES
CIUDADES DIGITALES
 
Interfaz e interfaces
Interfaz e interfacesInterfaz e interfaces
Interfaz e interfaces
 

Ähnlich wie Java Interfaces y Polimorfismo

JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesecodereck
 
polimorfismo
polimorfismopolimorfismo
polimorfismomiguel a
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
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
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributosRobert Wolf
 
POO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfPOO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfNone
 

Ähnlich wie Java Interfaces y Polimorfismo (20)

JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
polimorfismo
polimorfismopolimorfismo
polimorfismo
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Unidad_01_04.pdf
Unidad_01_04.pdfUnidad_01_04.pdf
Unidad_01_04.pdf
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
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
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
 
9.herencia en java
9.herencia en java9.herencia en java
9.herencia en java
 
9-Unidad 3: Encapsulamiento y modularidad
9-Unidad 3: Encapsulamiento y modularidad9-Unidad 3: Encapsulamiento y modularidad
9-Unidad 3: Encapsulamiento y modularidad
 
POO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfPOO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdf
 
Poo 3-herencia-10-11
Poo 3-herencia-10-11Poo 3-herencia-10-11
Poo 3-herencia-10-11
 

Mehr von Eric Gustavo Coronel Castillo

EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEric Gustavo Coronel Castillo
 

Mehr von Eric Gustavo Coronel Castillo (20)

Java Web JSTL
Java Web JSTLJava Web JSTL
Java Web JSTL
 
Model View Controller - MVC
Model View Controller - MVCModel View Controller - MVC
Model View Controller - MVC
 
JavaServer Page
JavaServer PageJavaServer Page
JavaServer Page
 
Java Web: Servlets
Java Web: ServletsJava Web: Servlets
Java Web: Servlets
 
Java Web - Presentación
Java Web - PresentaciónJava Web - Presentación
Java Web - Presentación
 
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONESJAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
 
JAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONESJAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONES
 
JAVA ORIENTADO A OBJETOS - ARREGLOS
JAVA ORIENTADO A OBJETOS - ARREGLOSJAVA ORIENTADO A OBJETOS - ARREGLOS
JAVA ORIENTADO A OBJETOS - ARREGLOS
 
Cursos Virtuales con Gustavo Coronel en UDEMY
Cursos Virtuales con Gustavo Coronel en UDEMYCursos Virtuales con Gustavo Coronel en UDEMY
Cursos Virtuales con Gustavo Coronel en UDEMY
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
 
Buenas practicas para el Desarrollo de Software
Buenas practicas para el Desarrollo de SoftwareBuenas practicas para el Desarrollo de Software
Buenas practicas para el Desarrollo de Software
 
JAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONESJAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONES
 
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
 
ORACLE SQL
ORACLE SQLORACLE SQL
ORACLE SQL
 
CONSULTAS BASICAS
CONSULTAS BASICASCONSULTAS BASICAS
CONSULTAS BASICAS
 
ORACLE SQL
ORACLE SQLORACLE SQL
ORACLE SQL
 
INTRODUCCIÓN A ORACLE SQL
INTRODUCCIÓN A ORACLE SQLINTRODUCCIÓN A ORACLE SQL
INTRODUCCIÓN A ORACLE SQL
 
MEJORANDO LA CALIDAD DEL SOFTWARE
MEJORANDO LA CALIDAD DEL SOFTWAREMEJORANDO LA CALIDAD DEL SOFTWARE
MEJORANDO LA CALIDAD DEL SOFTWARE
 
ORACLE 10g ADMINISTRACION I
ORACLE 10g ADMINISTRACION IORACLE 10g ADMINISTRACION I
ORACLE 10g ADMINISTRACION I
 
Ms project 2013 Lección 03
Ms project 2013 Lección 03Ms project 2013 Lección 03
Ms project 2013 Lección 03
 

Kürzlich hochgeladen

Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 

Kürzlich hochgeladen (7)

Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 

Java Interfaces y Polimorfismo

  • 1. ENTERPRISE JAVA DEVELOPER JAVA ORIENTADO A OBJETOS Eric Gustavo Coronel Castillo gcoronelc.blogspot.com INTERFACES
  • 2. Temas  Objetivo  Interface  Diferencia entre Clase Concreta, Abstracta e Interface  Polimorfismo  Operador instanceof  Casting  Ligadura Estática y Dinámica  Paquetes (Packages)  Control de Acceso a los Miembros de una Clase  Proyecto Ejemplo
  • 3. OBJETIVOS  Aplicar interfaces en el diseño de componentes software.  Aplicar el polimorfismo en el diseño de componentes software Empleado + getSueldo() : Single Contratado + getSueldo() : Single + getBonificacion() : Single SinContrato + getSueldo() : Single
  • 4. • Solo contienen operaciones (métodos) sin implementación, es decir solo la firma (signature). • Las clases son las encargadas de implementar las operaciones (métodos) de una o varias Interfaces (Herencia múltiple). • Se dice que se crean Interface cuando sabemos que queremos y no sabemos como hacerlo y lo hará otro o lo harán de varias formas (polimorfismo). public interface IPersona { public void operacion1(); public void operacion2(); } public class Empleado implements IPersona { public void operacion1() { //implementa el método de la interface } public void operacion2() { //implementa el método de la interface } public void operacion3() { //implementación } } Interface Métodos sin implementación (Clase Concreta) tiene la obligación de implementar los métodos de la Interface Realización INTERFACE
  • 5. Ejemplo de Herencia múltiple de Interface. public interface IPersona { public void operacion1(); public void operacion2(); } public class Empleado implements Ipersona, IMantenimiento { // Implementa los métodos de las interfaces // . . . // . . . // . . . } public interface IMantenimiento { public void insertar(); public void eliminar(); public void modificar(); } INTERFACE
  • 6. CLASE CONCRETA, ABSTRACTA E INTERFACE CARACTERISTICA CLASE CONCRETA CLASE ABSTRACTA INTERFACE HERENCIA extends (simple) extends (simple) implements (múltiple) INSTANCIABLE Si No No IMPLEMENTA Métodos Algunos métodos Nada DATOS Se permite Se permite No se permite* * Las variables que se declaran en una interface son implícitamente estáticas, finales y publicas.
  • 7. • Se dice que existe polimorfismo cuando un método de una clase es implementado de varias formas en otras clases. • Algunos ejemplos de Polimorfismos de herencia son: sobre-escritura, implementación de métodos abstractos (clase abstracta e interface). • Es posible apuntar a un objeto con una variable de tipo de clase padre (supercalse), esta sólo podrá acceder a los miembros (campos y métodos) que le pertenece. // Variable de tipo Empleado y apunta a un // objeto de tipo Contratado. Empleado objEmp = new Contratado(); // Invocando sus métodos double S = objEmp.getSueldo(); //OK double B = objEmp.getBonificacion(); //Error Empleado + getSueldo() : Single Contratado + getSueldo() : Single + getBonificacion() : Single SinContrato + getSueldo() : Single POLIMORFISMO
  • 8. • El método getGratificacion puede recibir objetos de Empleado o subtipos a este. • Cuando invoque el método getSueldo se ejecutará la versión correspondiente al objeto referenciado. public class Planilla { public static double getGratificacion(Empleado Emp){ return Emp.getSueldo() * 1.5; } } // Usando la clase Planilla double G1 = Planilla.getGratificacion(new Contratado()); double G2 = Planilla.getGratificacion(new SinContratado()); POLIMORFISMO
  • 9. • Este operador permite verificar si el objeto es instancia de un tipo especifico. public class Planilla { public static double getGratificacion(Empleado Emp){ if (Emp instanceof Contratado) return Emp.getSueldo() * 1.5; if (Emp instanceof SinContratado) return Emp.getSueldo() * 1.2; } } //Usando la clase Planilla double G1 = Planilla.getGratificacion(new Contratado()); double G2 = Planilla.getGratificacion(new SinContratado()); OPERADOR instanceof
  • 10. • Para restablecer la funcionalidad completa de un objeto, que es de un tipo y hace referencia a otro tipo, debe realizar una conversión (Cast). • UpCasting: Conversión a clases superiores de la jerarquía de clases (Herencia), es automático (conversión implícita), basta realizar la asignación. • DownCasting: Conversión hacia abajo, es decir hacia las subclases de la jerarquía (Herencia), es recomendable realizar Cast (conversión explicita), si no es compatible genera un error (Excepción). // UpCasting (Conversión implícita) Contratado a = new Contratado(); Empleado b = a; // DownCasting (Conversión explícita) Empleado a = new Contrtado(); Contratado b = (Contratado)a; // Error de compilación SinContrato a = new SinContrato(); Contratado b = (Contratado)a; CASTING
  • 11. • Esta relacionado con el momento que los nombres de variables se ligan (enlazan) con sus tipos de datos. • Ligadura (enlace) estática o temprana: Consiste en fijar el tipo de dato de las variables en tiempo de compilación. • Ligadura (enlace) dinámica o tardía: Consiste en fijar el tipo de dato de las variables en tiempo de ejecución, es decir una variable de un tipo puede almacenar objetos de otros tipos de la jerarquía de clases. // LIGADURA ESTÁTICA Empleado a = new Empleado(); // LIGADURA DINÁMICA Empleado a; a = new Empleado(); // Obtener el sueldo del empleado double s = a.getSueldo(); // Obtener el sueldo del empleado Contratado a = new Contratado(); double s = a.getSueldo(); // Obtener el sueldo del empleado SinContrato a = new SinContrato(); double s = a.getSueldo(); Empleado + getSueldo() : Single Contratado + getSueldo() : Single + getBonificacion() : Single SinContrato + getSueldo() : Single LIGADURA ESTÁTICA Y DINÁMICA
  • 12. • Organiza y agrupa un conjunto de clases, interfaces, subpaquetes y otros. • La creación de paquetes evita el conflicto de nombre de clases, además un paquete puede contener clases, campos y métodos que están disponible sólo dentro del paquete. • Observe la siguiente figura usando notación UML, y responda ¿Qué operaciones (métodos) tendrá la clase Class3? PAQUETES (PACKAGES)
  • 13. Para definir un paquete se usa la instrucción package y para utilizar clases de otro paquete, indique la ruta del paquete antes del nombre de la clase o la instrucción import. // Definiendo un paquete package paquete1; // Clase asociada al paquete public class Class1() { . . . }; // Definiendo un paquete package paquete1; // Clase asociada al paquete public class Class2 extends Class1 { . . . }; // Definiendo un paquete package paquete2; // Importando todas las clases del paquete import paquete1.*; //Clase asociada al paquete public class Class3 extends Class2 implements Interface1 { . . . }; // Definiendo un paquete package paquete2; // Interface asociada al paquete public interface Interface1() { . . . }; PAQUETES (PACKAGES)
  • 14.  Se conoce 4 formas de controlar el acceso a los campos (atributos) y métodos (operaciones) de las clases.  private ( - ): Acceso sólo dentro de la clase.  package (~) : Acceso sólo dentro del paquete.  protected ( # ): Acceso en la clase, dentro del paquete y en subclases (herencia dentro o fuera del paquete).  public ( + ): Acceso desde cualquier parte. CONTROL DE ACCESO A LOS MIEMBROS DE UNA CLASE Acceso Visibilidad Misma Clase Mismo Paquete SubClases y Mismo Paquete Universal public ( + ) Sí Sí Sí Sí protected ( # ) Sí Sí Sí No package (~) Sí Sí No No private ( - ) Sí No No No
  • 15. PROYECTO EJEMPLO  La institución educativa EduTec cuenta con dos tipos de trabajadores: Empleados y Docentes.  Los empleados cuentan con un sueldo fijo y depende del cargo que ocupa, según la siguiente tabla:  El sueldo del docente está en función de las horas que dicta, el pago por hora es de 120 Nuevos Soles.  El departamento de recursos humanos necesita una aplicación para calcular la bonificación que se debe pagar a cada trabajador según el siguiente cuadro: CARGO SUELDO Coordinador 5,000.00 Asistente 4,000.00 Secretaria 3,000.00 TRABAJADOR BONIFICACIÓN Empleado 100% del Sueldo Docente 70% del Sueldo
  • 16.
  • 17. Dirección de descarga: https://goo.gl/TDgc5R
  • 18. ENTERPRISE JAVA DEVELOPER JAVA ORIENTADO A OBJETOS Eric Gustavo Coronel Castillo gcoronelc.blogspot.com Gracias