Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Rosalía Laza Fidalgo Reyes Pavón Rial Curso 2008-2009
Prácticas A.E.D.I. Rosalía Laza Fidalgo Reyes Pavón Rial Curso
2
Índice Introducción Herencia Interfaces Genéricos Excepciones
Curso 2008/2009
3
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
4
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
5
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
La herencia modela las relaciones ES-UN/A. 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. clase padre clase hijoB clase hijoA clase base clase derivada Curso 2008/2009
6
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
Ejemplo: class Persona{ … } class Estudiante extends Persona{ class Trabajador extends Persona{ Curso 2008/2009
7
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
8
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
Ejemplo public abstract class Figura { // atributos private String nombre; // constructor public Figura( String nom ) nombre = nom; } // método abstracto abstract public double area(); public class Circulo extends Figura { // atributos private double radio; //constructor public Circulo (double r) super (“circulo”); radio = r; } // implementación del método area() public double area() return PI * radio * radio } public class Rectangulo extends Figura { //atributos private double base; private double alt; //constructor public Rectangulo (double largo, doble ancho) { super (“rectangulo”); base = largo; alt = ancho; } // implementación del método area() public double area() return base * alt Curso 2008/2009
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
10
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
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
12
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
Ejemplo de Interfaz interface Comparacion{ boolean iguales(Comparacion c); void visualiza(); } class Racional implements Comparacion{ int num, den; Racional (int n, int d){ //código } int numerador(){ //código } ... boolean iguales(Comparacion c){ Racional ra = (Racional) c; return num == ra.num && den == ra.den; } void visualiza(){ System.out.println(“número racional”); }} class Prueba{ public static void main (String [] args){ Comparacion c = new Complejo(2,3); Racional r= new Racional(3,5); c. visualiza(); // número complejo c=r; c.visualiza(); //número racional } class Complejo implements Comparacion{ int pReal, pImaginaria; Complejo (int r, int i){ //código } int parteReal(){ //código } ... boolean iguales(Comparacion c){ Complejo com = (Complejo) c; return pReal ==com.pReal && pImaginaria == com.pImaginaria; } void visualiza(){ System.out.println(“número complejo”); }} Curso 2008/2009
13
Interfaz - Clase Abstracta
●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
14
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
15
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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
16
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
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<T>{ // 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
17
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
Para crear un objeto de tipo Caja, lo instanciaremos utilizando una clase específica en lugar de T. Caja<Papel> caja1 = new Caja<Papel>(); //crea una caja de objetos Papel(se supone //implementada) Caja<Juguete> caja2 = new Caja<Juguete>(); //crea una caja de objetos Juguete (se supone 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
18
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
public class Pair<K,V> { 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 <String,Integer> par1 = new Pair <String,Integer>(new String("Pedro"),33); // No necesario hacer cast System.out.println(par1.getClave().charAt(0)); System.out.println(par1); Pair <Persona,Double> par2 = new Pair <Persona,Double>(new Persona("Maria",11), 9.5); System.out.println(par2.getClave().getEdad()); // se supone implementado el método getEdad() en la clase Persona System.out.println(par2); } Curso 2008/2009
19
●Introducción ● Herencia ● Interfaces ● Genéricos ● 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
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
21
●Introducción ● Herencia ● Interfaces ● Genéricos ● Excepciones
Tipos Throwable Error RunTimeException Exception IOException AWTException … NullPointerException IndexOutOfBoundsException NegativeArraySizeEx. EOFException MalformedURLEx FileNotFoundEx ... Curso 2008/2009
22
Propagación de excepción
●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
23
Creación de excepciones
●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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.