POO en lenguajes de tipos estáticos

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

Download "POO en lenguajes de tipos estáticos"

Transcripción

1 POO en lenguajes de tipos estáticos Carlos

2 Agenda Aspectos generales de implementación Interfaces Como mecanismo necesario para el polimorfismo sin herenc cia Excepciones chequedas en forma estática Mecanismo de Java Colecciones, iteradores y genericidad 2c2011 2

3 Aspectos generales de implementación 2c2011 3

4 Cuál es la diferencia? Lenguajes de tipos estáticos Las variables tienen tipos Hay chequeo de tipos en tiempo de compilación ArrayList x = new ArrayList ( ); ArrayList y = new Date ( ); Lenguajes de tipos dinámicos Las variables no tienen tipos No hay chequeo posible en tiempo de compilación x := OrderedCollection new. x := CuentaBancaria new. 2c2011 4

5 Lenguajes de tipeo dinámico Smalltalk Python Ruby Objective-C Self Groovy CLOS 2c2011 5

6 Lenguajes de tipos estáticos Java C# C++ En general, lo vamos a usar en nuestros ejemplos Toda vez que no digamos lo contrario Leves diferencias con Java Con compilación a código nativo Simula, Eiffel, Object Pascal, Scala, etc. 2c2011 6

7 Variables, tipos y objetos Date fecha1 = new Date (1983, 12, 10); Date fecha2 = new Date (2009, 8, 1); Date fecha3 = new Date (2002, 6, 10); String nombre = new String ("Carlos Fontela"); ArrayList lista = new ArrayList ( ); lista.add (fecha1); lista.add (fecha2); lista.add (fecha3); Collections.sort(lista); lista.add (nombre); for (int i = 0; i < lista.size(); i++) System.out.println(lista.get(i).toString()); 1c2011 7

8 Creación de objetos Declaración: ArrayList x; Definición: x = new ArrayList( ); Significado ArrayList es el tipo de x (que es una variable tipada) ArrayList( ) es el constructor de la clase ArrayList El objeto se crea recién cuando llamo al constructor con el operador new En x queda una referencia a un objeto de clase ArrayList 1c2011 8

9 Tipos por valor En Java, los primitivos: int, char, boolean, etc. No son objetos En C#, los que derivan de System.ValueType Objetos sin herencia En C++, todos menos las referencias Viven mientras estén en su ámbito == compara valores = asigna valores 1c2011 9

10 Tipos por eferencia En Java y C#, todas las clases En C++ sólo se implementann con punteros En Java y C# hay recolección de basura En C++ la recolección la hace el programador == compara referencias = asigna referencias En Java, equals() compara bits En Java, clone() copia bits 1c

11 Recolección de basura No determinística Asegura que No me voy a quedar sin memoria mientras haya objetos sin referenciar No se va a liberar ningún objeto que esté siendo referenciado desde un objeto referenciado Extremadamente cómoda Y evita errores muy difíciles de encontrar y reparar 1c

12 Métodos y atributos estáticos Métodos de clase Para enviar mensajes a la clase Collections.sort(lista); Atributos de clase Para que los valores sean iguales para todos los objetos de la clase En Java y C# se declaran static static int numeroacumulado; En C# puede haber propiedades de clase 1c

13 Definición de clases public class CuentaBancaria { int saldo; public int getsaldo ( ) { return this.saldo; } } 2c

14 Propiedades (C#) En vez de public int getsaldo ( ) { return this.saldo; // this equivale a self de Smalltalk } Se puede usar public int Saldo { get { return this.saldo; } } También para el setter 1c

15 Excepciones Lanzamiento if (saldo < monto) throw new SaldoInsuficienteException ( ); Captura try { cuenta.extraer (1000); } catch (SaldoInsuficienteException e) { e.printstacktrace(); } 1c

16 Constructores (1) public CuentaBancaria (int numero, String titular) { this.numero = numero; this.titular = titular; this.saldo = 0; } Tiene el mismo nombre que la clase 2c

17 Constructores (2) Se usan para inicializar Si no se implementan hay uno por omisión Para que toda clase tenga el suyo Pero se pueden programar otros, como hicimos En este caso, deja de existir el default Debería dejar al objeto en un estado válido => debe cumplir con los invariantes El default no es seguro 2c

18 Constructores y herencia Los constructores no se heredan Cada clase debe tener el suyo Receta Llamar al constructor del ancestro al principio del constructor propio super en Java base en C# 2c

19 Visibilidad Aplica a clases, atributos, métodos, propiedades Privados Sólo se ven desde su clase Ojo que en Smalltalk es ligeramente diferente Públicos Protegidos Visibles sólo para las clases descendientes De paquete En Java es la visibilidad por defecto En C# hay otras 2c

20 Paquetes Agrupación de clases, anidables Para manejar complejidad y resolver nombres Ejemplos: ArrayList es java.util.arraylist (Java) ArrayList es System.Collections.ArrayList (C#) import java.util.*; import java.util.arraylist; using System.Collections; // C# // Java // Java 2c

21 Paquetes y fuentes Toda clase está en un paquete En Java existe el paquete default, pero no es recomendable usarlo En C#, se enmarca el código de la clase en una cláusula namespace : namespace carlosfontela.cuentas { } En Java, cada clase pública va en un archivo fuente separado El paquete se indica en una cláusula package package carlosfontela.cuentas; 2c

22 Delegación Un objeto contiene referencias a otros objetos y les delega comportamiento public float longitud ( ) { return p1.distancia(p2); } 2c

23 Herencia y lenguajes En Java: public class Elipse extends Figura {... } En C#: public class Elipse : Figura {... } Java y C# tienen jerarquía de raíz única Java: java.lang.object C#: System.Object Posibilidad de evitar la herencia Declaramos la clase como final (Java) o sealed (C#) Ejemplo: String public final class String {...} 2c

24 Objetos, tipos y clases Casteo hacia arriba automático Elipse e = new Elipse(); Figura f = e; // válido y seguro // e = f; inválido e inseguro Otro caso public void p (Figura x) { } // luego será invocado: p(e); // e es de tipo Elipse Se ven como lo que no son f es una Elipse aunque se la trate como Figura Figura f = new Elipse ( ); // tipos distintos en la variable y el objeto!! 2c

25 Redefinición en Java Los métodos privados no pueden ser redefinidos Se estaría definiendo uno nuevo Posibilidad de evitar la redefinición Métodos final public final void m() {...} sealed en C# Sobrecarga y redefinición Redefinición se hace con la misma firma Si no, es sobrecarga 2c

26 Analizar CuentaBancaria cb = new CuentaBancaria( ); CuentaCorriente cc1 = new CuentaCorriente( ); CuentaBancaria cc2 = new CuentaCorriente( ); cb.extraer(200); cc1.extraer(200); cc2.extraer(200); 2c

27 Métodos virtuales En Java la virtualidad se da por defecto Como en Smalltalk? En C# y C++ debemos declarar métodos como virtual Métodos de clase, privados y finales no son virtuales 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 2c

28 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 public String tostring() { return titular; } Luego... CuentaBancaria cuenta = new CuentaBancaria (12, Juan ); System.out.println (cuenta); 2c

29 Clases y métodos abstractos Se declaran abstract Clases abstractas No tienen instancias, pero pueden tener constructor Métodos abstractos No pueden ser llamados Deben redefinirse Si una clase tiene un métodoo abstracto, debe declararse abstracta 2c

30 Interfaces Como mecanismo necesario para el polimorfismo sin herencia 2c

31 Polimorfismo sin herencia (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

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

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

34 Herencia de interfaces 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

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

36 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

37 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

38 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 perm mite que ver a un mismo objeto con distintos tipos => Cada tipo implica un comportamiento 2c

39 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

40 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

41 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

42 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

43 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

44 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

45 Excepciones chequedas en forma estática Mecanismo de Java 2c

46 Jerarquía de excepciones (Java) 2c

47 Excepciones chequeadas (1) Cláusula throws obligatoria public Fraccion dividir (Fraccion y) throws FraccionInvalidaException { if (y.numerador == 0) throw new FraccionInvalidaException ( ); int numerador = this.numerador * y.d denominador; int denominador = this.denominador * y.numerador; return new Fraccion(numerador, denominador); } A lo sumo se puede declarar un ancestro En redefiniciones, mantener y no agregar Para mantener el polimorfismo: muy molesto 2c

48 Excepciones chequeadas (2) Obligación de capturar (I) public Fraccion divisionmultiple ( Fraccion [ ] x, Fraccion [ ] y ) { Fraccion suma = new Fraccion (0, 1); try { for (int i = 0; i < 10; i++) { Fraccion d = x[i].dividir ( y [i] ); suma = suma.sumar(d); } } } catch (FraccionInvalidaException e) { System.err.println( División por cero ); return new Fraccion (0, 1); } return s; 2c

49 Excepciones chequeadas (3) Obligación de capturar (II) public Fraccion divisionmultiple ( Fraccion [ ] x, Fraccion [ ] y ) throws FraccionInvalidaException { Fraccion suma = new Fraccion (0, 1); for (int i = 0; i < 10; i++) { Fraccion d = x[i].dividir( y[i] ); suma = suma.sumar(d); } return s; } 2c

50 Excepciones chequeadas (4) Obligación de capturar (III) public Fraccion divisionmultiple ( Fraccion [ ] x, Fraccion [ ] y) { Fraccion suma = new Fraccion (0, 1); try { for (int i = 0; i < 10; i++) { Fraccion d = x[i].dividir( y[ [i] ); suma = suma.sumar(d); } } catch (FraccionInvalidaException e) { } return s; } 2c

51 Lenguajes y excepciones Excepciones chequeadas Son más seguras Molesta tener que capturarlas sí o sí Limita la redefinición, al no poder agregar nuevas excepciones Aunque cumple el principio de substitución Microsoft diseñó.net sin excepciones chequeadas Ojo: Java permite ambas Aunque es una decisión de diseño 2c

52 Colecciones, iteradores y genericidad 2c

53 Colecciones de java.util (1) Las más comunes de Java 1.4: 2c

54 Colecciones de java.util (2) Tienen elementos de tipo Object. No se sabe qué hay dentro Casteo para obtener utilidad No admiten elementos primitivos. Pero hay clases envolventes: Integer, Boolean, Double, Character, etc. Colecciones heredadas: Vector, Hashtable, Stack, BitSet, Properties, etc. 2c

55 Iteradores: definición y uso Objetos que saben cómo recorrer una colección, sin ser parte de ella Interfaz: Tomar el primer elemento Tomar el elemento siguiente. Chequear si se termina la colección Un ejemplo: List vector = new ArrayList(); for(int j = 0; j < 10; j++) vector.add(j); Iterator i = vector.iterator(); // pido un iterador para vector while ( i.hasnext() ) // recorro la colección System.out.println( i.next() ); 2c

56 Iteradores y colecciones Toda clase que implemente Collection puede generar un Iterator con el método iterator «interface» Iterator +next() : Object +hasnext() : boolean «uses» «interface» Collection +iterator() : Iterator Nótese que Iterator es una interfaz Pero está implementada para las colecciones definidas en java.util. 2c

57 Iteradores: para qué Llevan la abstracción a los recorridos de colecciones Facilitan cambios de implementación Collection lista = new ArrayList ( ); Iterator i = lista.iterator(); // pido un iterador para lista while ( i.hasnext() ) // recorro la colección System.out.println( i.next() ); No se necesita trabajar con el número de elementos Convierten a las colecciones en simples secuencias 2c

58 Ejercicio: lista circular (1) Qué es una lista circular? Definición: una lista que se recorre indefinidamente, de modo tal que al último elemento le sigue el primero Es un caso particular de LinkedList Qué cambia? Nada? Sólo la forma de recorrerla? => El iterador es diferentee 2c

59 Ejercicio: lista circular (2) 2c

60 Ejercicio: lista circular (3) public class ListaCircular extends LinkedList { public Iterator iterator( ) { return new IteradorListaCircular(this); } } Implementar la clase IteradorListaCircular Con sus métodos next() y hasnext() 2c

61 Ejercicio lista circular: otra visión 2c

62 Genericidad (1) Los tipos pueden ser parámetros de clases y métodos Ejemplo Java sin genericidad: List v = new ArrayList( ); String s1 = Una cadena ; v.add(s1); String s2 = (String)v.get(0); Ejemplo Java con genericidad: List<String> v = new ArrayList< <String>( ); String s1 = Una cadena ; v.add(s1); // el compilador verifica que s1 sea un String String s2 = v.get(0); 2c

63 Genericidad (2) En métodos, el compilador infiere el tipo genérico: public static <T> void eliminarelemento (List<T> lista, int i) { } eliminarelemento (listaconcreta, 6); Mejoras: Robustez en tiempo de compilación Legibilidad Cuestiones avanzadas public static <T extends Comparable > void ordenar (T[ ] v) { } public static <T > copy (List<T> destino, List<? extends T> origen) { } public static <T, S extends T> copy (List<T> destino, List<S> origen) { } 2c

64 Genericidad: Java vs..net Java usa la genericidad sólo para tiempo de compilación No llega al bytecode => compatibilidad hacia atrás No hay información del tip po completa en tiempo de ejecución.net mantiene la información de tipos completa hasta tiempo de ejecución Pero generó una biblioteca de clases nueva => sin compatibilidad hacia atrás 2c

65 Ventajas del tipeo estático Hay un chequeo antes de la ejecución Cuanto antes surja un error, más económico es corregirlo El compilador es un prime er verificador Incluso puede advertir potenciales problemas => warnings 2c

66 Claves Lenguajes de tipos estáticos: hay chequeo de tipos al compilar Algunos lenguajes tienen tipos por valor O tienen tipos que no son clases Hay mayores niveles de visibilidad Algunas asignaciones requieren casteo Polimorfismo seguro y sin herencia: interfaces Java tiene chequeo estático de excepciones 2c

67 Lecturas obligatorias A Comparative Analysis of Generic Programming Paradigms in C++, Java and C#, Arijit Khan and Shatrugna Sadhu, "Generics in C#, Java, and C++ - a conversation with Anders Hejlsberg, by Bill Venners with Bruce Eckel", com/intv/genericsp.html. 2c

68 Lecturas opcionales Carlos Fontela, Orientación a objetos Diseño y programación Todos los capítulos de la segunda parte Bruce Eckel, Thinking in Java o Piensa en Java Todo el libro 2c

69 Qué sigue Desarrollo de software y programación Temas de diseño RTTI, reflexión 2c

A3F. Polimorfismo. Carlos Fontela

A3F. 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 detalles

A3F. Polimorfismo. Carlos Fontela

A3F. Polimorfismo. Carlos Fontela Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2009 2 Métodos virtuales (1) 2c2009 3 Métodos virtuales

Más detalles

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

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

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

Reutilización con Delegación y Herencia

Reutilización con Delegación y Herencia Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas

Más detalles

RTTI y reflexión Modelos de datos

RTTI y reflexión Modelos de datos RTTI y reflexión Modelos de datos Carlos Fontela cfontela@fi.uba.ar Temario RTTI (información de tipos en tiempo de ejecución) Reflexión Modelo de datos y memoria de Java Otros modelos 1c2010 2 Transformaciones

Más detalles

Reutilización con Delegación y Herencia

Reutilización con Delegación y Herencia Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas

Más detalles

Clases (construcción)

Clases (construcción) Clases (construcción) Carlos Fontela cfontela@fi.uba.ar Temario Implementación de clases Atributos Métodos y propiedades Constructores Excepciones Diseño contractual TDD o diseño guiado por las pruebas

Más detalles

RTTI y reflexión A3F. Carlos

RTTI y reflexión A3F. Carlos RTTI y reflexión Modelos de objetos Carlos Fontela cfontela@ @fi.uba.ar Temario RTTI (información de tipos en tiempo de ejecución) Reflexión Modelos de objetos en dis stintos lenguajes 1c2011 2 Polimorfismoo

Más detalles

A3F. Objetos (uso) Carlos Fontela

A3F. Objetos (uso) Carlos Fontela Objetos (uso) Carlos Fontela cfontela@fi.uba.ar Temario Objetos y mensajes Objetos y clases Estado, comportamiento, identidad Paquetes Historia hacia la POO POO vs. procedural 2c2009 2 Operando sobre objetos

Más detalles

Reutilización con delegación, herencia y polimorfismo

Reutilización con delegación, herencia y polimorfismo Reutilización con delegación, herencia y polimorfismo Carlos Fontela cfontela@ @fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición

Más detalles

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

Interfaces. 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 detalles

Examen Teórico Convocatoria de Junio de 2012

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

A3F. Objetos (uso) Carlos Fontela

A3F. Objetos (uso) Carlos Fontela Objetos (uso) Carlos Fontela cfontela@fi.uba.ar Temario Objetos y mensajes Objetos y clases Estado, comportamiento, identidad Historia hacia la POO POO vs. procedural 2c2009 2 Operando sobre objetos (Smalltalk)

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

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

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

Construcciones del Lenguaje Java

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

Qué 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 + +.

Qué 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 detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PROGRAMACIÓ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 detalles

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

HERENCIA (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 detalles

Examen Teórico. Convocatoria de Febrero de 2015

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

Herencia. Implementación en Java

Herencia. 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 detalles

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

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 detalles

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

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ Tema 3 Clases y Objetos Tema 4 Comunicación entre objetos. Algoritmos Tema 5 Herencia y abstracción de datos Tema 6 Diseño de clases TEMA 5: Herencia

Más detalles

Tema 1. Herencia y Polimorfismo

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

Clases abstractas e interfaces en Java

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

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓ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 detalles

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016 Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Visibilidad protegida. Clases abstractas. Interfaces. Clase Object. Autoboxing. Copia de objetos. Igualdad

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! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!

Más detalles

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases INDICE Prologo XIII 1 Recorrido rápido de java 1.1. Para empezar 1 1.2. Variables 2 1.3. Comentarios en el condigo 1.4. Constantes con nombre 5 1.4.1. Caracteres Unicode 6 1.5. Flujo de control 7 1.6.

Más detalles

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016 Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Visibilidad protegida. Clases abstractas. Clase Object. Autoboxing. Igualdad de objetos. Copia de objetos.

Más detalles

2. Tratamiento de objetos con JAVA

2. 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 detalles

ANEXO II: Resumen de uso de colecciones

ANEXO II: Resumen de uso de colecciones ANEXO II: Resumen de uso de colecciones Este apartado muestra un resumen de uso de las colecciones. El estudio de las colecciones será completado en el tema 4 de la asignatura y en el ejercicio propuesto

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

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓ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 detalles

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

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011 Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas

Más detalles

PROGRAMACIÓN GENÉRICA

PROGRAMACIÓN GENÉRICA PROGRAMACIÓN GENÉRICA Lenguajes de Programación - Orientación a Objetos: Progr. Genérica 1 Programación genérica Objetivo: escribir algoritmos genéricos, independientes de las clases concretas de los datos

Más detalles

Objetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición.

Objetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición. (a) objetivos (b) terminología (c) polimorfismo (d) tipeo y herencia (e) vinculación dinámica de código (f) clases abstractas (g) soporte en JAVA (h) significado de la herencia (i) herencia y aserciones

Más detalles

Clases Abstractas e Interfaces

Clases 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 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

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

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

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

Examen Teórico. Convocatoria de Febrero de 2016

Examen 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 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 Herencia. Polimorfismo y ligadura. Clase object. Casting. Compatibilidad de tipos. Clases abstractas.

Más detalles

3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java

3.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 detalles

Tema 2: Clase y objetos en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 2: Clase y objetos en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 2: Clase y objetos en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Introducción. Clases. Propiedades. Visibilidad. Espacios de nombres. Ensamblados. Tipos del lenguaje.

Más detalles

Examen Teórico. Convocatoria de Julio de 2015

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

Clases (construcción)

Clases (construcción) Clases (construcción) Carlos Fontela cfontela@fi.uba.ar Temario Implementación de clases Atributos Métodos y propiedades Constructores Excepciones Diseño contractual TDD o diseño guiado por las pruebas

Más detalles

Interfaces y Clases Internas

Interfaces y Clases Internas Interfaces y Clases Internas (No es interfaz gráfica, sirve como alternativa a herencia múltiple) ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas?

Más detalles

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2007/08

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2007/08 Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2007/08 Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para poder adecuarse a futuros

Más detalles

Herencia: relación es un

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

Herencia y Clases Abstractas

Herencia y Clases Abstractas Herencia y Clases Abstractas Reutilización de código y código genérico ELO329: Diseño y Programación Orientados a Objetos Introducción La idea básica es poder crear clases basadas en clases ya existentes.

Más detalles

Colas Implementación con gestión estática de memoria

Colas Implementación con gestión estática de memoria Colas Implementación con gestión estática de memoria Esquema general 0 1 2 3 n - 1... _primero = 0 _ultimo = 0 Esquema general * Añadir un elemento a la cola. 0 1 2 3 n - 1 'a'... 1) _vector[_ultimo] =

Más detalles

Soluciones Ejercicios Tema 1

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

POO: Clases y objetos

POO: 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 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

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. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia

Más detalles

Diseño de tipos Igualdad, representación, código, copia y relación de orden

Diseño de tipos Igualdad, representación, código, copia y relación de orden Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones

Más detalles

Oracle Certified Professional, Java SE 6 Programmer 1Z0-851

Oracle Certified Professional, Java SE 6 Programmer 1Z0-851 Información del examen: Número de examen: 1Z0-851. Certificación Asociada: Oracle Certified Professional, Java SE 6 Programmer. Versión del producto: Java SE 6. Duración: 150 minutes. Número de preguntas:

Más detalles

3.6 Interfaces y Paquetes

3.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 detalles

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos

Más detalles

Interfaces y Clases Internas

Interfaces y Clases Internas Interfaces y Clases Internas (No es interfaz gráfica, sirve como alternativa a herencia múltiple) ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas?

Más detalles

Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia

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

Abstracción. Encapsulamiento. Polimorfismo. Objeto. método / objeto / clase / módulo. Separación de las propiedades de un

Abstracción. Encapsulamiento. Polimorfismo. Objeto. método / objeto / clase / módulo. Separación de las propiedades de un Abstracción Encapsulamiento Separación de las propiedades de un método / objeto / clase / módulo de la implementación del mismo Ocultamiento de información No es necesario dar conocer los detalles de la

Más detalles

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

Manejo de Clases y Objetos. Manejo de Clases y Objetos

Manejo de Clases y Objetos. Manejo de Clases y Objetos Cod. 1728.61 PLATAFORMA.NET Y SERVICIOS WEB nestor@lsi lsi.uniovi.es Dpto. de Informática - Laboratorio de Tecnologías de Orientación a Objetos http://www www.ootlab.uniovi.es CONCEPTOS BÁSICOS Objeto:

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

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

Prá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 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 detalles

Introducción a C++ Índice

Introducción a C++ Índice Introducción a C++ 1. 2. 3. 4. 5. 6. Índice 1. Diferencias entre C y C++. 2. Diferencias entre C++ y Java. 3. Ejemplos. 4. Funciones. 5. Memoria dinámica 6. Librería de funciones. 1 1. Diferencias entre

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

Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática

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

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Tema 2.- Objetos y mensajes

Tema 2.- Objetos y mensajes Tema 2.- Objetos y mensajes 1. Objetos y mensajes: mecanismo de envío de mensajes...2 2. SMALLTALK: EXPRESIONES...3 2.1. LITERALES: designan objetos constantes...3 2.2. NOMBRES DE VARIABLES: identifican

Más detalles

Clases y herencia. FJP Unidad 8. Diseño de clases

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

18. Interfaces Declaración de una interfaz

18. 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 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

ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO.

ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO. ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO. INDICE 1. INTRODUCCIÓN A JAVA 1.1. Qué es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

Programación Tema 9: Bibliotecas y Colecciones. Programación DIT-UPM

Programación Tema 9: Bibliotecas y Colecciones. Programación DIT-UPM Programación Tema 9: Bibliotecas y Colecciones 1 Contenidos l Bibliotecas l Concepto de colección l Definición y uso de lista (List, ArrayList) l Recorridos sobre colecciones l Conjunto (Set, HashSet)

Más detalles

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 11 / 2009 HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS Esta hoja de ejercicios

Más detalles

Programación orientada a objetos I

Programación orientada a objetos I Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar

Más detalles

JAVA 1. Introducción

JAVA 1. Introducción Diseño de Interfaces de Usuario JAVA. Introducción. Características Portabilidad Interpretado (bytecodes) Uso de Máquina Virtual Java (JVM) Orientado a Objetos Jerarquía de clases Extensible (packages)

Más detalles

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión

Más detalles

Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte)

Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte) Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía

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

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

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

Tema 4 Colecciones en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Colecciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Colecciones (paquete java.util): Interfaz Collection Interfaz List Interfaz Set InterfazMap Copia de

Más detalles

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java

Más detalles

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a

Más detalles

1º Certamen ILI-253 Pauta de Corrección Lenguajes de Programación Juan Pablo Menichetti Jorge Mujica 29 de Abril del 2004

1º Certamen ILI-253 Pauta de Corrección Lenguajes de Programación Juan Pablo Menichetti Jorge Mujica 29 de Abril del 2004 1º Certamen ILI-253 Pauta de Corrección Lenguajes de Programación Juan Pablo Menichetti Jorge Mujica 29 de Abril del 2004 Nombre: Paralelo: Nota: Tiempo: 110 Minutos. Responda con lapiz indeleble para

Más detalles

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA Introducción El paradigma de Programación Orientada a Objetos ha estado vigente desde hace muchos años en el mundo del software. A través de los años este paradigma

Más detalles

Parte I: Programación en un lenguaje orientado a objetos

Parte I: Programación en un lenguaje orientado a objetos Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento

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 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión interna de

Más detalles