Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2004/2005
EDA
2004/2005
//Mtodos
//constructor que UNICAMENTE puede ser invocado por la
//subclases; podemos crear (new) objetos de las clases
// Circulo, Rectangulo o Cuadrado, PERO NO Figura
public Figura( double dim1 , double dim2, String nombre){
this.dim1 = dim1;
this.dim2 = dim2;
this.nombre = nombre;
}
//Mtodos abstractos: comunes, pero con IMPLEMENTACIN
//especializada: NO TIENEN CUERPO y a su cabecera sigue ";"
public abstract double area( );
public abstract double perimetro( );
Paolo Rosso Grupos: 2B+ENG - ETSIA
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
switch (tipo.charAt(0)) {
case 'C':{System.out.println("\nPara leer Circulo,
introduzca el radio");
double radio = leerDouble();
instanciaLeida = new Circulo(radio);} break;
case 'R': {System.out.println("\nPara leer Rectangulo,
introduzca EN LINEAS SEPARADAS Alto y Ancho");
double alto = leerDouble();
double ancho = leerDouble();
instanciaLeida = new Rectangulo(alto , ancho);} break;
case 'S': {System.out.println("\nPara leer Cuadrado,
introduzca el lado");
double lado = leerDouble();
instanciaLeida = new Cuadrado(lado);} break;
} //fin del switch
return instanciaLeida;
}// fin de leerFigura
Paolo Rosso Grupos: 2B+ENG - ETSIA
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
...
// creacion de la variable numConFormato;
NumberFormat numConFormato = NumberFormat.getInstance();
numConFormato.setMinimumFractionDigits(2);
numConFormato.setMaximumFractionDigits(2);
System.out.println( "\nArea de todas las figuras = " +
numConFormato.format(AreaFiguras(coleccion)));
// Eliminada al implementar Comparable:
ordenarFigurasPorArea(coleccion);
// Se substituye por la llamada al mtodo insercionDirecta, esttico
// y genrico de la clase, tambin genrica, Ordenacion
/* Ordenacion.insercionDirecta(coleccion);*/
// Alternativamente, sin la directiva import Miscelanea.Ordenacion
// Miscelanea.Ordenacion.insercionDirecta(coleccion);
System.out.println( "\nColeccion de Figuras ordenadas por area");
muestraFiguras( coleccion );
}
catch (IOException electura) {
System.out.println("Problema con Input: "+electura);}
} //fin del main
}//fin del test
Paolo Rosso Grupos: 2B+ENG - ETSIA
EDA
2004/2005
EDA
2004/2005
EDA
2004/2005
Mtodo abstracto:
n
Declarado pero no implementado
n
Definido en una clase derivada
Clase abstracta:
n
Clase con un(os) mtodo(s) abstracto(s)
n
No se pueden crear objetos (concretos) de la clase (abstracta)
n
Su constructor utilizado desde la(s) clase(s) derivada(s)
public abstract class Figura {
//Atributos
protected double dim1;
protected double dim2;
protected String nombre;
EDA
2004/2005
Mtodo final:
n
Permanece invariante (no se puede sobrescribir)
n
La llamada al mtodo se resuelve a tiempo de compilacin y No
en tiempo de ejecucin (tipado esttico)
final public boolean menorQue( Figura fig){
return this.area() < fig.area();
}
Clase final:
n
NO puede ser extendida
n
Todos los mtodos son finales
public final class Integer extends Number implements Comparable {
...
}
Paolo Rosso Grupos: 2B+ENG - ETSIA
EDA
2004/2005
Interfaces
Interfaz:
n
Clase abstracta que contiene slo
n
Mtodos abstractos (public abstract)
n
Constantes (public static final)
public interface Comparable {
// NO hay atributos
public int compareTo( Object o );
}
public class Number implements Comparable {
...
}
10
EDA
2004/2005
Herencia mltiple:
n
NO soportada directamente
n
Con interfaces
EDA
2004/2005
Programacin Genrica
11
EDA
2004/2005
EDA
2004/2005
12
EDA
2004/2005
EDA
2004/2005
Representacin enlazada
}
Paolo Rosso Grupos: 2B+ENG - ETSIA
13
EDA
2004/2005
EDA
2004/2005
14
EDA
2004/2005
...
System.out.println("cuantos circulos hay en la coleccion?");
int numcirculos=0;
for( Figura i = coleccion; i != null ; i = i.siguiente() ){
Figura fig= i;
if (fig instanceof Circulo) {
System.out.print( fig.toString());
numcirculos++;
}
}
System.out.println("Hay "+numcirculos+" circulos");
}
}
EDA
2004/2005
Excepciones
Excepcin:
n
Condicin anormal/excepcional durante la ejecucin de un
segmento de cdigo
n
Objeto (Throwable)
java.lang. Object
java.lang. Throwable
java.lang.Exception
subclases de Excepcin: e.g . IOException NumberFormatException
15
EDA
2004/2005
Excepciones de usuario
Excepcin de usuario:
n
Excepcin propia: se define como clase derivada de de
la clase Exception
n
Para generar una excepcin propia, se crea un objeto de
la misma: new
n
Para lanzarla: throw (sin s final...)
EDA
2004/2005
16
EDA
2004/2005
try {
...
}
catch (Exception e) { // capturo
System.out.println(La excepcin +e+ puede ser capturada
y vuelta a lanzar: como muy tarde deber ser tratada en el
main que no podr propagarla (throws en la cabecera) ni
capturarla (catch) y volverla a lanzar (throw));
throw(e); // vuelvo a lanzar
}
EDA
2004/2005
Excepciones:
El ejemplo de la clase agenda
17
EDA
2004/2005
EDA
2004/2005
18