A3F. Polimorfismo. Carlos Fontela

Tamaño: px
Comenzar la demostración a partir de la página:

Download "A3F. Polimorfismo. Carlos Fontela"

Transcripción

1 Polimorfismo Carlos Fontela

2 Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2

3 cb := CuentaBancaria new. cc := CuentaCorriente new. Analizar cb extraer: 200. cc extraer: 200. Generación de lista de compras 2c2010 3

4 Analizar CuentaBancaria cb = new CuentaBancaria( ); CuentaCorriente cc1 = new CuentaCorriente( ); CuentaBancaria cc2 = new CuentaCorriente( ); cb.extraer(200); cc1.extraer(200); cc2.extraer(200); Generación de lista de compras 2c2010 4

5 Métodos virtuales (1) 2c2010 5

6 Métodos virtuales (2) llama al dibujar de Elipse: unaelipse mover. llama al dibujar de Triangulo: untriangulo mover. llama al dibujar de la clase de cada figura: coleccion dibujar. En Java y en Smalltalk la virtualidad se da por defecto En C# y C++ debemos declarar métodos como virtual Métodos de clase, privados y finales no son virtuales 2c2010 6

7 Métodos virtuales (3) Los métodos virtuales agregan ineficiencias Pero garantizan reutilización Eliminar la virtualidad sólo si se demuestra que no se van a redefinir y la presunta ineficiencia Un método debe ser virtual sí o sí cuando se lo redefinirá y es llamado desde: Un método en una clase ancestro Un método que delegue en el método en cuestión de la clase ancestro En Smalltalk no hay opción: todo método de instancia es virtual 2c2010 7

8 Ejemplo estándar en Java En Object public String tostring ( ) { } System.out.println( ) usa tostring() Si quiero que un objeto sea imprimible, debo redefinir tostring: En CuentaBancaria Luego... public String ToString() { return titular; } CuentaBancaria cuenta = new CuentaBancaria (12, Juan ); System.out.println (cuenta); 2c2010 8

9 Métodos abstractos (1) Nunca van a ser invocados: caso del dibujar de Figura Las instancias de las subclases van a poder responder el mensaje Pero sin definir comportamiento en la clase ancestro A nivel de la clase madre sólo se puede prever la firma que tendrá En lenguajes compilados, es también una necesidad de compilación Corolarios No tienen implementación Deben redefinirse Son virtuales 2c2010 9

10 Métodos abstractos: implementación En Java y C#: public void abstract dibujar(); Si una clase tiene métodos abstractos debe ser abstracta En Smalltalk Convencional Llamar a self subclassresponsibility 2c

11 Polimorfismo Objetos de distintas clases de una misma familia entienden los mismos mensajes Igual semántica (significado) Implementaciones diferentes Un mismo mensaje puede provocar la invocación de métodos distintos Vinculación tardía Se retarda la decisión sobre el método a llamar hasta el momento en que vaya a ser utilizado 2c

12 Polimorfismo sin herencia (Smalltalk) Los elementos deben ser dibujables Lo que necesito es que esté presente el método dibujar en la clase Si no => problemas en tiempo de ejecución 2c

13 Polimorfismo sin herencia (Java - 1) El problema es que en Java hay compilación con verificación de tipos El compilador no va a permitir una llamada a dibujar() desde un Object Cómo lograr que las instancias de Figura y de DiagramaUML sean dibujables para el compilador? 2c

14 Polimorfismo sin herencia (Java - 2) Solución: Hay una construcción llamada interfaz 2c

15 Son como clases Abstractas Con todos los métodos abstractos Sin atributos (sin estado) Ejemplo Interfaces: clases muy abstractas (1) public interface Imprimible { /*public abstract*/ void imprimirdatos(); } Pueden heredar de otras interfaces public interface Dibujable extends Imprimible { void dibujar(); } 2c

16 Interfaces: clases muy abstractas (2) Uso public class CajaAhorro extends CuentaBancaria implements Imprimible {... } Corolario Si una clase declara implementar una interfaz y no implementa (redefine) uno de sus métodos es abstracta 2c

17 Interfaces: protocolos Son grupos de métodos sin implementar Una clase puede implementar varias Ojo con los conflictos de nombres 2c

18 Interfaces y polimorfismo (1) Variables cuyo tipo es una interfaz Imprimible i = new Fecha(20,6,1964); Imprimible[ ] lista = new Imprimible[3]; lista[0] = new Fecha (20, 1, 2000); lista[1] = new Inmueble ( ); lista[2] = new Fecha (8, 6, 2002); for (int i=0; i < 3; i++) lista[i].imprimirdatos(); Ojo que sólo puedo instanciar clases 2c

19 Interfaces y polimorfismo (2) Cada objeto puede tener muchas caras Fecha f = new Fecha(20,6,1964); Imprimible i = f; Comparable c = f; Serializable s = f; Todos se refieren al mismo objeto Pero lo ven distinto Cada variable sólo puede usar los métodos de su interfaz 2c

20 Qué es una interfaz? Visión de lenguaje Una clase muy abstracta que se puede usar para herencia múltiple Visión desde el uso Un tipo de datos que permite que ver a un mismo objeto con distintos tipos => Cada tipo implica un comportamiento 2c

21 Interfaces predefinidas Caso de Comparable En java.lang.comparable interface Comparable { int compareto (Object o); } Devuelve valores <0, 0 o >0 Muy útil en colecciones! Hay otras predefinidas Comparator, Serializable, Cloneable, etc. 2c

22 Uso de Comparable public class Fraccion implements Comparable { private int numerador; private int denominador; } // otros métodos public int compareto(object otro) { Fraccion otra = (Fraccion) otro; if (numerador * otra.denominador > denominador * otra.numerador) return 1; else if (numerador * otra.denominador < denominador * otra.numerador) return -1; else return 0; } 2c

23 Comparable y arreglos Clase Arrays: uso Fraccion [ ] v = new Fraccion[4]; Arrays.sort (v); int posicion = Arrays.binarySearch (v, x); Método sort(): definición public void sort (Comparable [ ] w) { } Si Fraccion implementa Comparable, puedo usar Arrays.sort(v) Y si no? 2c

24 Rarezas: Comparator Si la clase de v no implementa Comparable, existe otro sort(): public void sort (Object [ ] v, Comparator c) { } Que puedo usar así: Comparator comp = new ComparadorFracciones(); Arrays.sort (x, comp); Y qué es ComparadorFracciones? Una clase que implementa java.util.comparator Y su método: public int compare (Object o1, Object o2); 2c

25 Implementación del comparador public class ComparadorFracciones implements java.util.comparator { public int compare (Object o1, Object o2) { Fraccion f1 = (Fraccion)o1; Fraccion f2 = (Fraccion)o2; if ( f1.getnumerador() * f2.getdenominador() > f1.getddenominador() * f2.getnumerador() ) return 1; else if ( f1.getnumerador() * f2.getdenominador() < f1.getdenominador() * f2.getnumerador() ) return -1; else return 0; } } 2c

26 Qué hicimos? Creamos una clase que no tiene estado! Y la instanciamos! Tampoco se refiere a una entidad de dominio Aparece por necesidades de diseño (solución) Sólo sirve por el método que lleva dentro Esto es un patrón de diseño: Command Otro uso de Comparator: Para definir otra forma de ordenamiento 2c

27 Claves Métodos virtuales garantizan reutilización genuina Interfaces definen qué puede hacer un objeto Polimorfismo = distintos comportamientos para un mismo mensaje 2c

28 Lecturas obligatorias Principios de diseño de Smalltalk, de Daniel H. H. Ingalls. Lo tienen en: tm Domain Driven Design, de Eric Evans, capítulo 1 Lo tienen en: s/chapter01.pdf 2c

29 Lecturas opcionales Orientación a objetos, diseño y programación, Carlos Fontela 2008, capítulos 7 y 8 Polimorfismo basado en herencia y Polimorfismo basado en interfaces 2c

30 Qué sigue Excepciones Colecciones e iteradores Primer parcial 2c

POO en lenguajes compilados de tipos estáticos (Java y C#)

POO en lenguajes compilados de tipos estáticos (Java y C#) POO en lenguajes compilados de tipos estáticos (Java y C#) Carlos Fontela cfontela@fi.uba.ar Temario Modelo de referencias, creación y destrucción de objetos (introducción) Paquetes y grupos de clases

Más detalles

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML Carlos Fontela cfontela@fi.uba.ar Temario Excepciones en Java Colecciones e iteradores En Java 1.4 y.net 1.1 Genericidad Desde Java

Más detalles

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas? NOTA: El término interfaz aquí NO se refiere a las interfaces gráficas

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso 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 detalles

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para

Más detalles

Programació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 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 detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época

Más detalles

Excepciones Colecciones e iteradores

Excepciones Colecciones e iteradores Excepciones Colecciones e iteradores Carlos Fontela cfontela@fi.uba.ar Temario Excepciones Desacoplar código de tratamiento de problemas Tratamiento de problemas con un enfoque optimista Colecciones e

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz 168 A. García-Beltrán y J.M. Arranz 16. Herencia Objetivos: a) Definir el concepto de herencia entre clases b) Interpretar el código fuente de una aplicación Java donde aparecen clases relacionadas mediante

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class 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 detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos

Más detalles

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo - Introdución a Java - Breve historia de Java - Características del lenguaje Java - Estructura del JDK 1.6 - Documentación del API (JavaDoc) - Instalar y configurar el ambiente de desarrollo - La variable

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN

Más detalles

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08 Tema 2 Técnicas básicas de POO Técnicas de Programación - Curso 2007/08 Contenido Principios de POO Encapsulación Herencia Polimorfismo Ejemplos Técnicas básicas Delegación Uso de interfaces Interfaces

Más detalles

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B) APRENDERAPROGRAMAR.COM PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero

Más detalles

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION 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 detalles

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Objeto Representa una instancia de un elemento del mundo del problema Es cualquier elemento

Más detalles

Derechos de Acceso: COMPOSICION

Derechos 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 detalles

Aplicaciones de Escritorio

Aplicaciones 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 detalles

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad

Más detalles

Conceptos más avanzados de Programación Orientada a Objetos

Conceptos 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 detalles

Ordenación de colecciones de objetos.

Ordenación de colecciones de objetos. Ordenación de colecciones de elementos Ordenación de colecciones de objetos. Revisión 1.1 Introducción. Debido a que en los últimos tiempos esta parece ser una de las preguntas más frecuentes que aparecen,

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases

Más detalles

Herencia. Hay clases que comparten gran parte de sus características.

Herencia. Hay clases que comparten gran parte de sus características. Herencia Hay clases que comparten gran parte de sus características. El mecanismo conocido con el nombre de herencia permite reutilizar clases: Se crea una nueva clase que extiende la funcionalidad de

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Introducción a OOP LSUB, GSYC, URJC. Wednesday, January 16, 13

Introducción a OOP LSUB, GSYC, URJC. Wednesday, January 16, 13 Introducción a OOP LSUB, GSYC, URJC 1 Clases y Objetos Clase = datos + operaciones 2 Clases y Objetos public class Punto { public int x; public int y; 3 Clases y Objetos Punto p1 = new Punto(); Punto p2

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Clases Abstractas e Interfaces

Clases Abstractas e Interfaces Clases Abstractas e Interfaces Presentación basada en: 1. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003. 2. Apuntes del Curso Programación Orientado a Objetos. Pablo Castells.

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo. POLIMORFISMO El polimorfismo es la característica de la programación orientada a objetos que permite modificar la instancia de un objeto en tiempo de ejecución basado en una jerarquía de herencia. De esta

Más detalles

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA Estructuras de Datos y Algoritmos Primeros ejemplos de TDA Repaso POO Programación Orientada a Objetos Principios encapsulamiento abstracción herencia polimorfismo POO y Java: encapsulamiento Todo está

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia Programación orientada a objetos Capítulo 8 Mejora de las estructuras mediante herencia Clases y objetos de DoME Modelo de objetos Modelo de clases Crítica de la v1 de DoME - Duplicación de código - Las

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación

Más detalles

La Herencia: Teoría (1)

La Herencia: Teoría (1) Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.

Más detalles

Diseño Basado en Componentes. Curso 2008 / 09

Diseño Basado en Componentes. Curso 2008 / 09 Beneficios de OOP Diseño Basado en Componentes Ingeniería Informática Universidad Carlos III de Madrid Programación Orientada a Objetos (OOP) en VB.NET Diseño Basado en Componentes. Curso Conceptos orientados

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

Más detalles

Universidad Salesiana de Bolivia

Universidad Salesiana de Bolivia Universidad Salesiana de Bolivia Ingeniería de Sistemas I DATOS DE IDENTIFICACIÓN PLAN DE DISCIPLINA GESTIÓN II - 2015 INSTITUCIÓN UNIVERSITARIA: Universidad Salesiana de Bolivia RECTOR: Dr. Rvdo. P. Thelian

Más detalles

Agenda..NET C# Laboratorio #1

Agenda..NET C# Laboratorio #1 PROGRAMACIÓN III Agenda.NET C# Laboratorio #1 .NET Qué es.net? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier

Más detalles

Conversión entre Tipos

Conversión entre Tipos Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen

Más detalles

Hoja 4: Solución. public String tostring() { return "("+getx()+", "+gety()+")"+" Lado: "+getlx();

Hoja 4: Solución. public String tostring() { return (+getx()+, +gety()+)+ Lado: +getlx(); Hoja 4: Solución Ejercicio 1 package figuras; public class Cuadrado extends Rectángulo { public Cuadrado(int x, int y, int ancho) { super(x,y,ancho,ancho); public String tostring() { return "("+getx()+",

Más detalles

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño Programación Orientada a Objetos Introducción a Java Angela Carrillo Ramos Java: Lenguaje de Programación Por qué surge un lenguaje? Para adaptarse a los cambios de entorno y usos: Independencia de la

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

Soluciones Ejercicios Tema 3

Soluciones Ejercicios Tema 3 1 Soluciones Ejercicios Tema 3 Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro 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 detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc. Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado

Más detalles

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos Fundamentos de Informática Lección 7. Programación Orientada a Objetos Curso 2010-2011 José Ángel Bañares y Pedro Álvarez 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Implementación

Más detalles

Java: Clases Abstractas e Interfaces

Java: Clases Abstractas e Interfaces 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 A nivel conceptual,

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto)

FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto) EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE EJERCICIO 1 Cuestiones (1 punto) 1 2 3 4 5 6 7 8 9 10 Seleccione la opción correcta en cada caso, teniendo en cuenta que tan sólo puede marcar

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Árboles binarios de búsqueda

Árboles binarios de búsqueda Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada

Más detalles

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies. Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

También añado a la clase Libro los siguientes métodos: (que programaré más adelante)

También añado a la clase Libro los siguientes métodos: (que programaré más adelante) 1.Creación de la capa de negocios La capa del Dominio de Negocios consta de una clase creada a partir de la tabla Libro a la que le he añadido los atributos no persistentes: CodPais, artic y digcontrol.

Más detalles

Tema 3. Programación orientada a objetos en Java (Parte 1)

Tema 3. Programación orientada a objetos en Java (Parte 1) Programación en Java Tema 3. Programación orientada a objetos en Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Clases y objetos (I) Clase Cojunto de datos (atributos) y funciones (métodos)

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : 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 detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Tema 7: Polimorfismo. Índice

Tema 7: Polimorfismo. Índice Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Programació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. 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 detalles

POO en Java. Relaciones de composición y Herencia. Composición: clase Círculo. Composición. Herencia: La palabra reservada extends

POO en Java. Relaciones de composición y Herencia. Composición: clase Círculo. Composición. Herencia: La palabra reservada extends Relaciones de composición y Herencia POO en Java Características: Composición tiene un Herencia es un Polimorfismo. Abstracción. Clases y objetos. Java Arrays y Cadenas 1 Java Arrays y Cadenas 2 Composición

Más detalles

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su Universidad de La Laguna. Escuela Técnica Superior de Ingeniería Informática Tercero del Grado de Informática LENGUAJES Y PARADIGMAS DE PROGRAMACION. SEGUNDA PARTE 5 páginas Nombre: Alu: 1. Cuál es la

Más detalles

Estructura de las Aplicaciones Orientadas a Objetos Herencia de clases

Estructura de las Aplicaciones Orientadas a Objetos Herencia de clases Estructura de las Aplicaciones Orientadas a Objetos Herencia de clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... APRENDERAPROGRAMAR.COM EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... (CU00916C) Sección: Cursos Categoría: Lenguaje de

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 TEMARIO MODULO I. EL LENGUAJE C# 5 Introducción al desarrollo de soluciones informáticas. El Framework.NET. o Descripción de la plataforma. o Las especificaciones

Más detalles

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos Computación Avanzada Clase 3 Introducción a la Programación Orientada a Objetos (POO) Definición de Programación Orientada a Objetos Qué es la POO? Según Wikipedia: POO es un paradigma de programación

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte.

Más detalles

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Patrón Fábrica Abstracta Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Contenido Descripción General Problema Solución Participantes Ejemplo: Fábrica de Carros Ejemplo: RelojVisual 2 Descripción

Más detalles

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

1. Cuántas sentencias hay en la secuencia principal del siguiente programa? 1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.

Más detalles