Prácticas A.E.D.I. Rosalía Laza Fidalgo Reyes Pavón Rial Curso 2008-2009 Índice • • • • • Introducción Herencia Interfaces Genéricos Excepciones Curso 2008/2009 ●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones Introducción • Clase Java: es.

Download Report

Transcript Prácticas A.E.D.I. Rosalía Laza Fidalgo Reyes Pavón Rial Curso 2008-2009 Índice • • • • • Introducción Herencia Interfaces Genéricos Excepciones Curso 2008/2009 ●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones Introducción • Clase Java: es.

Slide 1

Prácticas A.E.D.I.
Rosalía Laza Fidalgo
Reyes Pavón Rial

Curso 2008-2009


Slide 2

Índice






Introducción
Herencia
Interfaces
Genéricos
Excepciones

Curso 2008/2009

2


Slide 3

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Introducción
• Clase Java: es un tipo definido por el usuario
que describe los atributos y los métodos de los
objetos que se crearán a partir de la misma.
– Atributos: Definen el estado de un determinado
objeto.
– Métodos: Son las operaciones que definen el
comportamiento del objeto.

• Modificadores de acceso: public, private,
protected o se puede omitir.

Curso 2008/2009

3


Slide 4

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Introducción
• Constructores: Método especial que permite
crear un objeto.
• Método main: Toda aplicación Java contiene al
menos una clase que define un método main.
Tiene como misión inicializar y finalizar la
ejecución de la aplicación.
public static void main (String args[])
{
System.out.println(“mensaje”);
}

Curso 2008/2009

4


Slide 5

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Herencia
• La herencia modela las relaciones ES-UN/A.

clase padre

clase hijoA

clase base

clase hijoB

clase derivada

• Clase base: clase de la que deriva el resto de las clases.
• Clase derivada: Variación de la clase base de la que hereda
métodos y atributos. Permite añadir atributos y métodos adicionales
e incluso modificar el significado de los métodos heredados.

Curso 2008/2009

5


Slide 6

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Herencia
• Ejemplo:
class Persona{

}
class Estudiante extends Persona{

}
class Trabajador extends Persona{

}

Curso 2008/2009

6


Slide 7

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Herencia
• clase final: no puede ser extendida (no se puede
heredar de ella), todos sus métodos son también
finales y no se pueden redefinir
• clase abstracta: la clase base únicamente define
los métodos y atributos de la clase
– No se puede instanciar
– Tiene que existir una subclase que la implemente.
– Se pueden definir métodos abstractos y no abstractos
(diferencia con interfaz donde todos los métodos son
abstractos: no contienen implementación)

Curso 2008/2009

7


Slide 8

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Ejemplo
public abstract class Figura
extends
Figura
public class
class Circulo
Rectangulo
extends
Figura
{public
{
{ //atributos
//
atributos
//
atributos
private
double base;
private
Stringradio;
nombre;
private double

private double alt;
//constructor
//constructor
//
constructor
public
(double
r) largo, doble ancho)
public Circulo
Rectangulo
(double
public
Figura( String nom )
{
{
super
{
super (“circulo”);
(“rectangulo”);
r;
nombre radio
= nom;
base
==largo;
alt = ancho;
}}
//
} implementación del método area()
public
double area()
// método
implementación
del método area()
//
abstracto
{
public double area()
abstract
public
double
area();
return
PI
*
radio
*
radio
{
}}
return base * alt
Curso 2008/2009
}
}

8


Slide 9

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Utilidades
• Mecanismo básico de reutilización de código
• Permite extender la funcionalidad de un objeto
• Permite definir nuevos tipos restringiendo o
aumentando propiedades
• Genera una jerarquía de clases, que es usada
para implementar métodos y clases genéricos:
– Estructura en forma de árbol de profundidad n.
– Recursividad de la herencia: cada clase hereda de su
predecesor y así sucesivamente
Curso 2008/2009

9


Slide 10

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Interfaces
• Es un conjunto de declaraciones de métodos (sin
implementación) y atributos que son implícitamente
public, static y final.
• Una clase implementa una interfaz si define todos los
métodos abstractos de la interfaz.
• Una clase puede extender sólo a otra clase base. Sin
embargo puede implementar una o varias interfaces.
• Una interfaz puede heredar de otra utilizando extends.
• Cuando una clase implementa una interfaz que hereda
de otra, tiene que implementar todos los métodos
definidos en la cadena de herencia de la interfaz

Curso 2008/2009

10


Slide 11

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Ejemplo de Interfaz
interface NombreInterface{
tipo_devuelto método1(lista de parámetros);
...
tipo_devuelto métodoN(lista de parámetros);

}

Curso 2008/2009

11


Slide 12

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Ejemplo de Interfaz
class
Racional
implements
class Prueba{
Complejo
implementsComparacion{
Comparacion{
class
interface
Comparacion{
int
den;
int num,
pReal,
pImaginaria;
public
static
void main (String [] args){
Racional
(int
//código}}
boolean
iguales(Comparacion
c);
Complejo
(intn,r, int
int d){
i){ //código
Comparacion
c = new Complejo(2,3);
int parteReal(){ //código }
Racional
r= new
Racional(3,5);
void
visualiza();
int
numerador(){
//código
}
...
c. visualiza(); // número complejo
...
}
boolean iguales(Comparacion c){

}

boolean iguales(Comparacion
c){
Complejo com = (Complejo)
c;
c=r;
Racional
ra ===com.pReal
(Racional) c; &&
return pReal
return num ==//número
ra.num
&&racional
den ==
c.visualiza();
pImaginaria
== ra.den;
com.pImaginaria;
}}}
void
void visualiza(){
visualiza(){
System.out.println(“número
System.out.println(“número racional”);
complejo”);
}}
}}
Curso 2008/2009

12


Slide 13

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Interfaz - Clase Abstracta
• Ambas tienen en común que pueden
contener declaraciones de métodos sin
implementar y no se pueden instanciar.
• Se diferencia en:
– Una clase no puede heredar de dos clases
abstract, pero sí puede heredar de una clase
abstract e implementar una o más interfaces
– Una clase no puede heredar métodos
definidos de una interface
Curso 2008/2009

13


Slide 14

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Genéricos
• El casting entre objetos se puede realizar, de manera
implícita, en los siguientes casos:
– T y U son dos clases y U es superclase de T
– T y U son interfaces y U es superinterfaz de T
– T es una clase que implementa la interfaz U


Ejemplos:
Persona p;
Estudiante e = new Estudiante();
p = e;
Comparacion c;
Racional r= new Racional(3,5);
c=r;

Curso 2008/2009

14


Slide 15

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Genéricos
• El casting entre objetos hay que realizarlo de manera
explícita en los siguientes casos:
– T y S son dos clases y S es subclase de T
– T y S son interfaces y S es subinterfaz de T
– S es una clase que implementa la interfaz T
• Ejemplos:
Persona p= new Estudiante();
Estudiante e;
e= (Estudiante) p;
Comparacion c = new Racional(3,5);
Racional r;
r = (Racional) c;
boolean iguales (Comparacion c){
Racional ra = (Racional) c;
return num == ra.num && den == ra.den;
}
Curso 2008/2009

15


Slide 16

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Genéricos
• Java permite definir una clase basada en un tipo
genérico, es decir, un tipo no especificado hasta que se
instancie la clase.
• La cabecera de la clase contendrá una referencia al
tipo dentro de corchetes angulares:
public class Caja{
//
declaraciones y código para gestionar los
objetos de tipo T
}

• Podemos utilizar cualquier identificador para el tipo
genérico, pero el convenio consiste en utilizar una letra
mayúscula.
Curso 2008/2009

16


Slide 17

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Genéricos
• Para crear un objeto de tipo Caja, lo instanciaremos
utilizando una clase específica en lugar de T.
Caja caja1 = new Caja();
//crea una caja de objetos Papel(se supone
//implementada)
Caja caja2 = new Caja();
//crea una caja de objetos Juguete (se supone
//implementada)

• Con la misma definición de la clase Caja, se pueden almacenar
diferentes tipos de objetos, los cuales se indican al instanciarlo.

Curso 2008/2009

17


Slide 18

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Genéricos
public class Pair {
private K clave;
private V valor;
public Pair(K c, V v) { clave = c; valor = v; }
public K getClave() { return clave; }
public V getValor(){return valor; }
public String toString(){return "["+ getClave() + "," + getValor() + "]"; }
public static void main (String [] args){
Pair par1 = new Pair (new String("Pedro"),33);
// No necesario hacer cast
System.out.println(par1.getClave().charAt(0));
System.out.println(par1);

Pair par2 = new Pair (new Persona("Maria",11), 9.5);
// No necesario hacer cast
System.out.println(par2.getClave().getEdad());
// se supone implementado el método getEdad() en la clase Persona
System.out.println(par2);
}
}

Curso 2008/2009

18


Slide 19

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Excepciones
• Una excepción es un error o condición anormal surgida
durante la ejecución de una secuencia de código.
• Java obliga a que el programador prevea este tipo de
situaciones capturando el error producido.
• Cuando se produce una excepción se detiene la
ejecución del programa, se crea un objeto que la
representa y se envía al método que lo ha provocado.
• El método puede gestionar la excepción (capturarla), o
dejar que el gestor del interprete Java lo trate, el cual
mostrará un mensaje describiendo la excepción.

Curso 2008/2009

19


Slide 20

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Ejemplo
public class EjemploExcepcion {
public static void calculo(int d){
int a = 10 / d;
System.out.println(“no se visualiza si
el parámetro es 0”);
}
}

Curso 2008/2009

20


Slide 21

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Tipos
Throwable

Error

Exception
...

RunTimeException

IOException

NullPointerException

EOFException

IndexOutOfBoundsException

FileNotFoundEx

NegativeArraySizeEx.

MalformedURLEx

AWTException





Curso 2008/2009

21


Slide 22

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Propagación de excepción
public class EjemploExcepcion {
static void calculo(int d) throws IllegalArgumentException
{
if (d == 0) throw new IllegalArgumentException();
int a = 10 / d;
System.out.println(“Se visualiza el resultado”);
}
}

Curso 2008/2009

22


Slide 23

●Introducción

● Herencia ● Interfaces ● Genéricos ● Excepciones

Creación de excepciones
class ExcepcionDenominadorCero extends Exception{
ExcepcionDenominadorCero(){
super();
}
ExcepcionDenominadorCero(String s){
super(s);
}
}
public class EjemploExcepcion{
static void calculo(int d) throws ExcepcionDenominadorCero
{
if (d == 0) throw new ExcepcionDenominadorCero();
int a = 10 / d;
}
Curso 2008/2009
23
}