Módulo 8: INTERFACES
|
|
- María Carmen Martínez Nieto
- hace 5 años
- Vistas:
Transcripción
1 Módulo 8: INTERFACES 8-1
2 SUMARIO INTERFACES 1 SUMARIO INTRODUCCIÓN A LOS INTERFACES EN JAVA UTILIZACIÓN DE INTERFACES EN JAVA COMBINACIÓN DE INTERFACES: HERENCIA MÚLTIPLE EN JAVA5 8.4 INTERFACES Y HERENCIA 8 F. Liberal Malaina 8-2
3 8.1 INTRODUCCIÓN A LOS INTERFACES EN JAVA En el capítulo relativo a la herencia se describió cómo la utilización de clases abstractas permitía definir el comportamiento común de una jerarquía de clases. Esto se conseguía al tener que implementar los métodos abstractos en las subclases y dotarles así de un comportamiento específico, al mismo tiempo que se respetaba el formato común (nombre del método, argumentos, etc.). Definiendo métodos abstractos o incompletos en una clase abstracta, y dejando su implementación para sus descendientes se forzaban en definitiva una serie de características comunes a todas las subclases de la jerarquía. De una forma análoga a las clases abstractas, un interfaz en Java define un protocolo o modelo de comportamiento. Para ello, una vez más, se definirán una serie de métodos pero no su implementación. De hecho básicamente un interfaz en Java (según la propia definición dada por Sun) consiste en un conjunto de definiciones de métodos sin implementación al que se asigna un nombre concreto. Dado que en esencia un interfaz consiste en una serie de métodos sin implementación, esto es, abstractos; cuáles son entonces las diferencias entre la utilización de interfaces y de clases abstractas?. Para responder esa pregunta cabe pensar cuáles son las carencias que obligaron a introducir el concepto de interfaces al definir el lenguaje Java, un concepto que, por otra parte, no aparece en otros lenguajes orientados a objetos: El comportamiento asociado a una clase abstracta únicamente se transmite por el mecanismo de herencia. Es decir, para que una clase comparta un determinado comportamiento debe ser necesariamente una subclase de la clase abstracta que define el comportamiento (debe encontrarse en la misma jerarquía de clases). Esto obliga a que las clases que deseen presentar un comportamiento común deban ser clases muy relacionadas (parientes). La carencia anterior se ve agravada por el hecho de que la herencia en Java es simple, con lo cual solamente se puede heredar un comportamiento, el de la superclase (o sus ancestros). Frente a esas carencias, un interfaz permite definir un comportamiento que puede ser implementado por cualquier clase, independientemente de la jerarquía a la que pertenezca ya que NO es la herencia el mecanismo de transmisión del comportamiento. Esto permite que clases con poca relación entre sí (no pertenecientes a una jerarquía común) puedan compartir parte de dicho comportamiento. Además, una clase puede implementar varios interfaces, lo cual soluciona el agravante que introducía la herencia simple de java a la utilización de clases abstractas. Por el contrario, aparecen nuevos condicionantes: en un interfaz no se puede implementar ningún método, al contrario que sucedía en las clases abstractas y aunque pueden contener datos miembro, éstos deben ser estáticos y constantes. F. Liberal Malaina 8-3
4 8.2 UTILIZACIÓN DE INTERFACES EN JAVA Para definir un interfaz en Java se utiliza la palabra reservada interface. A interface se le suele añadir el modificador public para permitir que lo utilicen clases fuera del paquete. De forma paralela, para indicar que una clase va a soportar o ajustarse a un determinado interfaz se utiliza la palabra reservada implements seguida del nombre del interfaz en la definición de la clase. En el código que se muestra a continuación se va a utilizar el concepto de interfaz para definir el comportamiento relacionado con un Vehículo. A continuación, se definirán una serie de clases que proporcionen ese interfaz. //<Vehiculo.java> public interface Vehiculo { int ARRANCADO=0; int PARADO=1; DATOS CONSTANTES A PESAR DE QUE NO SE DECLAREN EXPLÍCITAMENTE COMO TALES public void arrancar(); public void acelerar(float incremento); public void frenar(float decremento); public float obtenervelocidadactual(); public void parar(); TODOS LOS MÉTODOS DEFINIDOS PERO SIN IMPLEMENTACIÓN A continuación dos clases que implementan el interfaz Vehículo: Avion y Motocicleta. Se pueden observar las distintas implementaciones de los métodos en función de las características propias de cada tipo. F. Liberal Malaina 8-4
5 //<Motocicleta.java> public class Motocicleta implements Vehiculo { public static float CONSTANTE_FRENADA=2.123f; public static float CONSTANTE_ACELERACION=3.42f; protected int estado=parado; protected float velocidadactual=0; public int numruedas=2; public int potencia=200; //en CV public int cilindrada=500; //en cc protected int marchaactual=0; public void arrancar(){ cambiarmarcha(1); acelerar(10); estado=arrancado; velocidadactual=10; public void acelerar(float incremento){ giraracelerador(incremento/constante_aceleracion); velocidadactual+=incremento; public void frenar(float decremento){ apretarfrenosdisco(decremento/constante_frenada); velocidadactual-=decremento; public float obtenervelocidadactual(){ return velocidadactual; public void parar(){ frenar(obtenervelocidadactual()); estado=parado; protected void giraracelerador(float angulo){ //operaciones para girar acelerador protected void apretarfrenosdisco(float presion){ //operaciones para apretarfrenos protected void cambiarmarcha(int marcha){ //operaciones para cambio de marcha marchaactual=marcha; //<Avion.java> public class Avion implements Vehiculo{ public static float CONSTANTE_FRENADA=12.1f; public static float CONSTANTE_ACELERACION=12.1f; public static float ARRANQUE_INICIAL=123.12f; public static int NUM_MAX_MOTORES=6; protected int estado=parado; protected float velocidadactual=0; public int nummotores=2; public long potencia=120000; //en CV public long rpmactual[]; public Avion(){ rpmactual=new long [Avion.NUM_MAX_MOTORES]; public Avion(int motores){ nummotores=motores; rpmactual=new long [motores]; public void arrancar(){ for(int i=0; i <nummotores;i++){ empujarpalancamotor(i,arranque_inicial); estado=arrancado; velocidadactual=0; public void acelerar(float incremento){ for(int i=0; i <nummotores;i++){ empujarpalancamotor(i,incremento/constante_aceleracion); velocidadactual+=incremento; public void frenar(float decremento){ for(int i=0; i <nummotores;i++){ empujarpalancamotor(i,-(decremento/constante_frenada)); velocidadactual-=decremento; public float obtenervelocidadactual(){ return velocidadactual; public void parar(){ // Maniobra de acercamiento, sacar FLAPS..., estado=parado; protected void apretaracelerador(float presion){ //operaciones para girar acelerador protected void empujarpalancamotor(int nummotor,float desplamiento){ //Operaciones para empujar palanca 8.3 COMBINACIÓN DE INTERFACES: HERENCIA MÚLTIPLE EN JAVA Como se ha comentado en la introducción de este capítulo, los interfaces se introducen en Java, en parte, para suplir las carencias de la herencia simple. Dado que puede resultar útil que una clase presente varios comportamientos pero no se puede conseguir directamente con clases abstractas (al transmitirse el comportamiento a través de la herencia) aparece el mecanismo de combinación de interfaces. Imaginemos por un momento que estamos diseñando un videojuego de estrategia en tiempo real en el que podemos manejar diferentes Vehículos. La mayoría de los vehículos se utilizan para el transporte de equipamiento, el soporte a las tropas etc (Coche, Motocicleta, Avion ) Alguna de las fases del juego permiten que el jugador controle ciertas armas para defender a su ejército virtual (Cañones, Ametralladoras, ). Para unificar el manejo de las distintas armas se define un nuevo interfaz Armas, con las operaciones más comunes (apuntar, disparar, cargar ). F. Liberal Malaina 8-5
6 //<Arma.java> package armas; public interface Arma { public void cargar(); public void apuntar(float param1, float param2, float param3); public void disparar(int numproyectiles, int tipoproyectil); public void descargar(); En ciertas fases de la campaña militar, el usuario puede utilizar aviones de combate. Nos encontramos entonces ante el dilema de cómo gestionar dichos elementos. Por una parte se trata de un vehículo y cómo tal debe mantener el interfaz proporcionado por Vehículo, puesto que el jugador ya lo ha utilizado para el manejo de aviones de transporte. Por otro lado debe ser capaz de utilizar el interfaz Arma ya que es el interfaz definido para ese tipo de objetos. Sin embargo, no tiene sentido definir una clase abstracta con los dos comportamientos puesto que en principio son comportamientos que tienen poco que ver, únicamente sería por tanto válido para unas pocas clases concretas como AvionCombate, Tanque. La solución es declarar una nueva clase AvionCombate que proporcione ambos interfaces. F. Liberal Malaina 8-6
7 //<AvionCombate.java> import armas.*; public class AvionCombate implements Vehiculo,Arma{ public static float CONSTANTE_FRENADA=12.1f; public static float CONSTANTE_ACELERACION=12.1f; public static float ARRANQUE_INICIAL=123.12f; public static int NUM_MAX_MOTORES=6; protected int estado=parado; protected float velocidadactual=0; public int nummotores=2; public long potencia=120000; //en CV public long rpmactual[]; public void arrancar(){ public void acelerar(float incremento){ public void frenar(float decremento){ public float obtenervelocidadactual(){ return 0; public void parar(){ public void cargar(){ //cogermisildeposito(); //insertarmisirconducto(); public void apuntar(float param1, float param2, float param3){ //moverlocalizadorlaser(param1,param2,param3); //programarmisil(); public void disparar(int numproyectiles, int tipoproyectil){ //mandarordendisparo(numproyectiles,tipoproyectil); //actualizarcontadorproyectiles,tipoproyectil); public void descargar(){ //retirarresiduosmisil(); //actualizarcontadorproyectiles,tipoproyectil); La clase AvionCombate permite ilustrar cómo se pueden utilizar varios interfaces para combinar comportamientos. Sin embargo, si comparamos esa clase con Avion vemos como ha sido necesario reimplementar los métodos relativos al interfaz Vehículo. Evidentemente, esa duplicación de código no es admisible más que a modo de ejemplo. Una solución mucho más elegante y que ilustra la utilización conjunta de herencia e interfaces consistiría en crear una clase AvionCombateHeredado que herede de Avion (con lo cual hereda los métodos que se mantienen igual) y que añada las características del interfaz Arma. F. Liberal Malaina 8-7
8 //<AvionCombateHeredado.java> import armas.*; public class AvionCombateHeredado extends Avion implements Arma{ public AvionCombateHeredado() { super(); public AvionCombateHeredado(int motores) { super(motores); public void cargar(){ //cogermisildeposito(); //insertarmisirconducto(); public void apuntar(float param1, float param2, float param3){ //moverlocalizadorlaser(param1,param2,param3); //programarmisil(); public void disparar(int numproyectiles, int tipoproyectil){ //mandarordendisparo(numproyectiles,tipoproyectil); //actualizarcontadorproyectiles,tipoproyectil); public void descargar(){ //retirarresiduosmisil(); //actualizarcontadorproyectiles,tipoproyectil); 8.4 INTERFACES Y HERENCIA Los interfaces se comportan de forma similar a las clases a la hora de realizar operaciones de herencia. Cada nuevo método que incorpore cada subinterfaz deberá ser añadido a los del superinterfaz e implementados por toda clase que lo implemente. Vemos en el código cómo desde cada método se puede acceder a cualquier variable (realmente constantes) definidas en los superinterfaces, puesto que la clase al implementar el subinterfaz de más bajo nivel ya conoce todas ellas. El resultado del código de la página siguiente es el que se muestra en la figura: F. Liberal Malaina 8-8
9 //<SuperInterfaz.java> package interfaces; public interface SuperInterfaz { int variablesuperinterfaz=0; public void metodosuperinterfaz(); //<SubInterfaz.java> package interfaces; public interface SubInterfaz extends SuperInterfaz { int variablesubinterfaz=1; public void metodosubinterfaz(); //<SubSubInterfaz.java> package interfaces; public interface SubSubInterfaz extends SubInterfaz { int variablesubsubinterfaz=2; public void metodosubsubinterfaz(); //<LanzadorInterfaces.java> package interfaces; public class LanzadorInterfaces implements SubSubInterfaz { public void metodosuperinterfaz(){ System.out.println(" SuperInterfaz: Variable SuperInterfaz: "+variablesuperinterfaz); System.out.println(" SuperInterfaz: Variable SubInterfaz: "+variablesubinterfaz); System.out.println(" SuperInterfaz: Variable SubSubInterfaz: "+variablesubsubinterfaz); public void metodosubinterfaz(){ System.out.println(" SubInterfaz: Variable SuperInterfaz: "+variablesuperinterfaz); System.out.println(" SubInterfaz: Variable SubInterfaz: "+variablesubinterfaz); System.out.println(" SubInterfaz: Variable SubSubInterfaz: "+variablesubsubinterfaz); public void metodosubsubinterfaz(){ System.out.println(" SubSubInterfaz: Variable SuperInterfaz: "+variablesuperinterfaz); System.out.println(" SubSubInterfaz: Variable SubInterfaz: "+variablesubinterfaz); System.out.println(" SubSubInterfaz: Variable SubSubInterfaz: "+variablesubsubinterfaz); public static void main(string[] args) { LanzadorInterfaces arrancar=new LanzadorInterfaces(); arrancar.metodosuperinterfaz(); arrancar.metodosubinterfaz(); arrancar.metodosubsubinterfaz(); F. Liberal Malaina 8-9
Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Más detallesCONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)
APRENDERAPROGRAMAR.COM CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Más detallesClases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
Más detallesClases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
Más detallesProgramación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia
Tema 5.- Herencia 1. Herencia múltiple en C++: ambigüedad de nombres...2 2. Herencia en SMALLTALK...4 2.1. Determinación de los métodos a ejecutar: self y super...4 2.2. Herencia de métodos y variables
Más detallesHerencia y Polimorfismo
Herencia y Polimorfismo Dra. Maricela Bravo Universidad Autónoma Metropolitana Unidad Azcapotzalco 1 Herencia en el mundo real Cosa Medio de telecomunicación Medio de transporte Coche Vehiculo aéreo Objeto
Más detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Más detallesHerencia. Implementación en Java
Herencia Implementación en Java Herencia Concepto de Herencia Es el mecanismo que permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente
Más detallesRecogiendo la basura. Herencia de interfaz Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
1 Herencia de interfaz. 2013 Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 Introducción Ante la herencia múltiple alguna solución no controversial tenía que
Más detallesFormato para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC,LSC 2003-1 5033 Programación Orientada a Objetos I PRÁCTICA No. 11 LABORATORIO DE NOMBRE DE LA PRÁCTICA Ingeniero en Computación, Lic.
Más detallesProgramación Tema 7: Relaciones entre clases. Programación DIT-UPM
Programación Tema 7: Relaciones entre clases 1 Contenidos l Polimorfismo l Implementación de interfaces l Uso de interfaces l Jerarquías de interfaces l Extensión l Jerarquía de extensión 2 Polimorfismo
Más detallesUNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA
UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesEjercicio 1 (proyecto prlistas, paquete listas)
PRÁCTICA 3 Curso 2004-05 En esta práctica construiremos y usaremos dos paquetes: el primero, listas, que implementa listas genéricas y el segundo, colas, que implementa colas y colas de prioridades genéricas.
Más detallesSEMESTRE: 1 SEMESTRE GRADO: 1 GRADO GRUPO: E1
Subsecretaría de Educación Superior DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE SALINA CRUZ. NOMBRE DEL TEMA: CLASE PRINCIPAL NOMBRE DEL ALUMNO: ZÁRATE LÓPEZ LEONARDO ASIGNATURA:
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesCurso de Java orientado a Android Parte 2
Curso de Java orientado a Android Parte 2 Introducción Java es un lenguaje de programación orientado a objetos (OOP). En este post cubriremos las características y principios básicos de la programación
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Composición... 4 Herencia... 8 Herencia e Inicialización... 12 Constructor de Superclase...
Más detallesTema 1. Herencia y Polimorfismo
ÍNDICE EDA. Unidad didáctica I: Conceptos de Java para Estructuras de Datos Tema 1. Herencia y Polimorfismo 1. Relaciones entre clases: Reutilización del software. 2. La Herencia como soporte Java del
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización
Programación orientada a objetos Resumen de Temas Unidad 6: Polimorfismo y reutilización 6.1 Concepto de Polimorfismo Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un
Más detalles2. Tratamiento de objetos con JAVA
2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesGuía práctica de estudio 08: Polimorfismo
Guía práctica de estudio 08: Polimorfismo Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 08: Polimorfismo
Más detallesDerechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
Más detallesInterfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
Más detalles3.6 Interfaces y Paquetes
3.6 Interfaces y Paquetes Interfaces, implementaciones, paquetes, organización de archivos 3.6.1 Interfaces Declaración, Herencia múltiple, supertipos y subtipos, implementación Introducción vs. Clase
Más detallesAplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
Más detalles18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Más detallesPráctica 10a. Práctica 10a. José M. Ordax
Práctica 10a José M. Ordax chemi@javahispano.org 1 Copyright 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano
Más detallesJava Interfaces y el concepto de simplicidad
El concepto de Java Interfaces es de sobra conocido por todos. Qué son los Java interfaces?. Esta es una muy buena pregunta.la mayor parte de las veces cuando uno mira la definición de interface suele
Más detallesUnidad 2. Elementos Intermedios del Lenguaje
Unidad 2 Elementos Intermedios del Lenguaje Paradigmas de Programación Un paradigma de programación se refiere a la forma en que se entiende, diseña y desarrolla una aplicación Imperativo Declarativo Funcional
Más detallesIntroducción a Java. Introducción a Java. Programación I
Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32
Más detallesExamen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Más detallesPROGRAMACIÓN EN JAVA
SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 2: Jerarquía de clases en Java Objetivos Implementar una jerarquía de clases para crear una aplicación en Java Comprender
Más detallesDefinición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Más detallesTema 10: Interfaces. Índice
Tema 10: Interfaces Antonio J. Sierra Índice 1. Definición de una interfaz. 2. Implementación y uso de una interfaz. 3. Extensión de las interfaces. 4. Modelado UML de las interfaces. 5. Casos de uso.
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesPráctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones
Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Más detallesTaller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Más detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es Variables y tipos de datos Operaciones y operadores Clases y objetos Tipos
Más detallesINTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Java 1 y 2 Diferencias entre Java1 y Java2 Mejoras en las interficies gráficas (Swing) Amplias mejoras en las librerías
Más detallesUniversidad de Cantabria
Polimorfismo Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Comprender el mecanismo del polimorfismo Aprender a utilizar el
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Más detallesPOO: Clases y objetos
POO: Clases y objetos Programación de aplicaciones 1 Introducción En los lenguajes de programación orientados a objetos, tenemos la posibilidad de extender el lenguaje mediante la creación de nuevo tipos,
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Clases abstractas e Mg. Ricardo Coppo rcoppo@uns.edu.ar La clase Object Todas las clases de Java son descendientes de la clase Object No es necesario
Más detallesTest : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Más detallesSoluciones Ejercicios Tema 1
BonoMetro (I) 1 Soluciones Ejercicios Tema 1 Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia
Más detallesProgramación orientada a objetos. Introducción
Programación orientada a objetos Clases: Polimorfismo Introducción El polimorfismo, en general, es la característica de un lenguaje orientado a objetos que permite que un mismo identificador de método
Más detallesExamen Teórico. Convocatoria de Febrero de 2015
Examen Teórico Convocatoria de Febrero de 2015 Nombre: DNI: Grupo: 1. Contesta de forma razonada a las siguientes cuestiones relacionadas con los ficheros.jar: a) Para qué se utilizan los ficheros con
Más detallesHERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.
HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la
Más detallesConcurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesClases Abstractas e Interfaces
Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear y utilizar clases y métodos abstractos
Más detalles3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java
Capítulo III 3.1 Introducción a TDA y OO Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java Problemas en el Desarrollo de Grandes Programas ❶ Cómo organizar una pieza de software, de manera
Más detallesTEMA 5. Agenda. Herencia
TEMA 5 Herencia V1.3 Manuel Pereira González Agenda Implementación Métodos Heredados vs Sobreescritos La Clase Object Resumen 1 Introducción Herencia Una clase (subclase ó clase hija) hereda la estructura
Más detallesEjecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
Más detalles3. LA HERENCIA. Necesidad de la herencia
página 1 3. LA HERENCIA Necesidad de la herencia La mente humana clasifica los conceptos de acuerdo a dos dimensiones: pertenencia y variedad. Se puede decir que el Ford Fiesta es un tipo de coche (variedad
Más detallesExamen Teórico. Convocatoria de Julio de 2015
Examen Teórico Convocatoria de Julio de 2015 Nombre: DNI: Grupo: 1. Sobre la ejecución de aplicaciones Java desde la línea de comandos: a) Explica el significado y uso del parámetro cp. b) Indica si la
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Herencia PRÁCTICA NÚM. [ 4 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje de Programación
Más detallesJava en 2 horas. Rodrigo Santamaría
Java en 2 horas Rodrigo Santamaría Generalidades 2 Desarrollado por Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión interna de
Más detallesConceptos más avanzados de Programación Orientada a Objetos
Conceptos más avanzados de Programación Orientada a Objetos Programación 2008 Licenciatura de Lingüística y Nuevas Tecnologías Repaso: API de Java API = Application Programming Interface Una API describe
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesPolimorfismo Java y Servicios Web I Master en Ingeniería Matemática
Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Introducción. Conversión
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
Más detallesTema 6: Herencia. (El lenguaje C++)
(El lenguaje C++) 1 Índice 2 1. Herencia 3 En C++ pueden ser definidas clases en términos de otras clases (composición). En C++ también podemos definir una clase a partir de otra preexistente utilizando
Más detallesJava Herencia vs Interfaces
Java Herencia vs Interfaces es una de las comparaciones más típicas cuando uno empieza a programar en Java. Siempre se generan dudas de cuando usar cada una de ellas ya que su comportamiento es similar.
Más detallesUnidad Didáctica 10. Concepto de Tipo y Subtipo Diseño e Implementación. Versión 1.0.0
Unidad Didáctica 10 Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice 1. Concepto de Tipo y Subtipo 2.
Más detallesEn anteriores ejemplos se ha visto que una clase tiene datos miembro que son instancias de otras clases. Por ejemplo:
Herencia Composición En anteriores ejemplos se ha visto que una clase tiene datos miembro que son instancias de otras clases. Por ejemplo: class Circu l o { Punto cent r o ; int radi o ; float supe r f
Más detallesclass Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }
REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesHerencia: relación es un
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 007 : relación es un I Seres materiales Seres inertes Seres vivos Coches Plantas Animales Renault Flores
Más detallesJava Básico. Polimorfismo. Copyright
Java Básico Polimorfismo Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano v1.0 o posterior.
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesPARTE TEÓRICA - TEST [2,5 PUNTOS]:
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA 71901072 PROGRAMACIÓN ORIENTADA A OBJETOS (GRADO EN INGENIERÍA INFORMÁTICA / TECNOLOGÍAS DE LA INFORMACIÓN)
Más detallesPráctica 11e. Práctica 11e. José M. Ordax
Práctica 11e José M. Ordax chemi@javahispano.org 1 Copyright 2005 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano
Más detallesExamen Teórico. Convocatoria de Febrero de 2016
Examen Teórico Convocatoria de Febrero de 2016 Nombre: DNI: Grupo: 1. Responde a las siguientes cuestiones: a) Un programador Java empaqueta el código de un proyecto en el fichero videojuego.jar cuya clase
Más detallesTema 5. Herencia. Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada
Tema 5 Herencia Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada Qué es la Herencia? Propiedad de que las instancias de una clase hija tengan acceso a la estructura de datos* y
Más detalles2ª Parte: Problemas (5 puntos sobre 10)
NOMBRE: APELLIDOS: NIA: GRUPO: 2ª Parte: Problemas (5 puntos sobre 10) Duración: 1 hora 45 minutos Puntuación máxima: 5 puntos Fecha: 17 de Junio de 2013 PROBLEMA 1 (3 puntos) El sistema de gestión de
Más detallesEl concepto de Java Package Encapsulation
El concepto de Java Package encapsulation no es conocido por todos. Todos los desarrolladores conocemos que existe public, private, protected y package visibility como operadores de ámbito. Sin embargo
Más detallesProgramación II Práctica 04: Objetos
Introducción Programación II Práctica 04: Objetos Versión del 01/05/2016 En la siguiente práctica se utilizarán los conceptos de: herencia, sobrescritura, polimorfismo, abstract, extends e implements.
Más detallesProgramación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !
Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 2004 Veracruz, Ver. Relación entre clases
Más detallesJava: Clases Abstractas e Interfaces
Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Clases abstractas e interfaces v A nivel conceptual,
Más detallesPolimorfismo de tipo (en la herencia)
Polimorfismo de tipo (en la herencia) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Overriding (especialización o redefinición) Static bind (enlace estático) Dynamic bind (enlace dinámico) Clases
Más detallesHerencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Más detallesCLASE 9 -HERENCIA Y POLIMORFISMO
CLASE 9 -HERENCIA Y POLIMORFISMO INTRODUCCIÓN Diferentes tipos de objetos con características y comportamiento comunes. lado1 lado2 lado3 color de línea color de relleno punto Triángulo Círculo radio color
Más detallesJava interface y extensibilidad
En Java el uso de interfaces es algo común en la programación del día a día. Sin embargo también es bastante común tener muchas dudas de para que sirve un interface. Normalmente nos podemos encontrar con
Más detallesInterfaces. Agustín J. González ELO-326: Seminario I 2do. Sem. 2001
Interfaces Agustín J. González ELO-326: Seminario I 2do. Sem. 2001 1 Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases bases simultáneamente.
Más detallesLos Constructores(1)
Java: Definición de Clases y Objetos Presentación basada en: 1. Como Programar en Java. Deitel y Deitel. Ed. Prentice-Hall. 1988 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA,
Más detallesTema 6. Threads: programas multitarea
Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos
Más detallesRelaciones entre clases
Relaciones entre clases 1 Humberto Cervantes Maceda Alfonso Martínez Martínez Abril 2005 Relaciones entre clases Dependencia Generalización Asociación Realización 2 Relaciones entre clases Dependencia:
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesb) Basta con definir una variable de tipo Alumno (a) y otra de tipo CursoExtraescolar (curso) antes de hacer la llamada al método mediante el
PRIMER EXAMEN PARCIAL ESTRUCTURA DE DATOS Y ALGORITMOS 27 FEBRERO 2014 Apellidos y Nombre: Grupo Algunas reglas: Antes de comenzar el examen, escribe tu nombre y grupo. Lee atentamente el enunciado de
Más detalles