Prcticas A'E'D'I' - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Prcticas A'E'D'I'

Description:

public Rectangulo (double largo, doble ancho) super ('rectangulo'); base = largo; alt = ancho; // implementaci n del m todo area() public double area() return base ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 24
Provided by: cova
Category:
Tags: ancho | prcticas

less

Transcript and Presenter's Notes

Title: Prcticas A'E'D'I'


1
Prácticas A.E.D.I.
  • Rosalía Laza Fidalgo
  • Reyes Pavón Rial
  • Curso 2008-2009

2
Índice
  • Introducción
  • Herencia
  • Interfaces
  • Genéricos
  • Excepciones

3
Introducción
?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.

4
Introducción
?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)

5
Herencia
?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.

6
Herencia
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • Ejemplo
  • class Persona
  • class Estudiante extends Persona
  • class Trabajador extends Persona

7
Herencia
?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)

8
Ejemplo
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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 p
ublic 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
9
Utilidades
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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

10
Interfaces
?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

11
Ejemplo de Interfaz
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
interface NombreInterface tipo_devuelto
método1(lista de parámetros) ...
tipo_devuelto métodoN(lista de parámetros)
12
Ejemplo de Interfaz
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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.prin
tln(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)
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 cr c.visualiza() //número
racional
13
Interfaz - Clase Abstracta
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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

14
Genéricos
?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)
  • cr

15
Genéricos
?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

16
Genéricos
?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 CajaltTgt
  • // 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.

17
Genéricos
?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.
  • CajaltPapelgt caja1 new CajaltPapelgt()
  • //crea una caja de objetos Papel(se supone
  • //implementada)
  • CajaltJuguetegt caja2 new CajaltJuguetegt()
  • //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.

18
Genéricos
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • public class PairltK,Vgt
  • 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 ltString,Integergt par1 new Pair
    ltString,Integergt(new String("Pedro"),33)
  • // No necesario hacer cast
  • System.out.println(par1.getClave().charAt(0
    ))
  • System.out.println(par1)
  • Pair ltPersona,Doublegt par2 new Pair
    ltPersona,Doublegt(new Persona("Maria",11), 9.5)

19
Excepciones
?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.

20
Ejemplo
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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)

21
Tipos
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
22
Propagación de excepción
?Introducción ? Herencia ? Interfaces ? Genéricos
? Excepciones
  • 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)
  •  

23
Creación de excepciones
?Introducción ? Herencia ? Interfaces ? Genéricos
? 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
Write a Comment
User Comments (0)
About PowerShow.com