Professional Documents
Culture Documents
prcticas AEDI
ampliacin de estructuras de datos y de la informacin
CONCEPTOS
paquetes: agrupacin de clases Java ~ unit Pascal
herencia: modela las relaciones ES-UN/A
interfaz: especifica el comportamiento de una clase a travs de la definicin de sus
mtodos (no implementacin)
excepciones: captura de errores excepcionales
INTRODUCCIN
Una clase en Java es un tipo definido por el usuario que describe los atributos y los
mtodos de los objetos que se crearn a partir de la misma.
atributos: definen el estado de un determinado objeto
mtodos: son las operaciones que definen comportamiento del objeto
atributos y mtodos se denominan miembros de clase
Para controlar el acceso a los miembros de una clase, Java proporciona las palabras clave
private, protected y public denominados modificadores de acceso, aunque tambin se puede
omitir: predeterminado
Los modificadores de acceso indican el tipo de acceso permitido a cada miembro:
predeterminado: accesibles slo por las clases del paquete
miembros pblicos: accesibles para todas las clases
miembros privados: slo accesibles desde la propia clase
miembros protegidos: accesibles desde las clases derivadas de
una clase base (da igual el paquete en el que est).
Constructores y destructores son mtodos especiales que permiten iniciar y destruir un objeto.
Toda aplicacin java contiene al menos una clase que define un mtodo main
public class Mensaje {
public static void main (String args[])
{
System.out.println(mensaje);
}
1/11
En un fichero se pueden incluir tantas definiciones de clases como se desee, pero slo
una de ellas puede ser declarada como public. sta ser la que defina el nombre del
fichero .java
PAQUETES
Los paquetes permiten a Java agrupar clases, interfaces, excepciones y
constantes en agrupaciones lgicas: son contenedores de clases.
Permiten la organizacin de las clases.
La funcionalidad de los paquetes es la reutilizacin, restriccin, facilidad de
uso y visibilidad de las clases. Similar a las units de Pascal.
Un paquete puede contener a otros paquetes.
Ej: package NombrePaquete
Si se omite la definicin de paquete las clases se asocian a un paquete por defecto sin
nombre. De esta forma se asegura que todas las clases pertenecen a un paquete
Java utiliza los directorios del sistema de archivos para almacenar los paquetes,
pudiendo crearse una jerarqua de paquetes separando los niveles por puntos.
Ej: package Paquete.Subpaquete1.Subpaquete3;
** Esta jerarqua debe estar reflejada en el sistema de archivos, es decir debe existir un directorio
Paquete, que contenga al subdirectorio SubpaqueteN y as sucesivamente. No existe lmite en
la profundidad de la jerarqua de paquetes, slo la que imponga el propio sistema de archivos
Ej: package Paquete.Subpaquete1.Subpaquete3 = Paquete\Subpaquete1\..
import
Para acceder a los paquetes desarrollados se utiliza la sentencia import seguida del
nombre de paquete o paquetes a importar. El import va situado a continuacin de la
sentencia package, si existe, y antes de las definiciones de clase.
Se pueden importar todas las clases del paquete o slo algunas:
El comodn para importar todas las clases de paquete es el *
Ej:
import Paquete.* ;
import Paquete.Subpaquete.Clase;
Una vez importado un paquete podemos hacer referencia a sus mtodos directamente:
2/11
con import
import java.lang.System
Cada vez que hacemos referencia a un mtodo de una clase que no se encuentra en la
clase definida, el compilador la buscar dentro de la clase o clases importadas
** Problema: cuando se importan dos paquetes que contienen clases con el mismo nombre es
necesario emplear la sentencia completa para acceder a la clase que se desee
HERENCIA
clase padre
clase hijoA
clase base
clase hijoB
clase derivada
3/11
Herencia:
-
// mtodo abstracto
abstract public double area();
4/11
//constructor
public Rectangulo (double largo, doble ancho)
{
super (rectangulo);
base = largo;
alt = ancho;
}
// implementacin del mtodo area()
public double area()
{
return base * alt
}
5/11
para
INTERFAZ
Es un conjunto de declaraciones de mtodos (sin implementacin) y atributos
que son implcitamente public, static y final. Una clase implementa una interfaz si
define todos los mtodos abstractos de la interfaz.
Mientras que una clase puede extender slo a otra clase base, s que 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 mtodos
definidos en la cadena de herencia de la interfaz
Una clase no puede heredar de dos clases abstract, pero si puede heredar de
una clase abstract e implementar una o ms interfaces
Una clase no puede heredar mtodos definidos de una interface
//Implementacin de interfaz
public class ImplementaInterfaz implements MiInterfaz{
int multiplicando=CONSTANTE;
// implemento el mtodo
int metodoAbstracto( int parametro )
{
return ( parametro * multiplicando );
}
6/11
EXCEPCIONES
Una excepcin es un error o condicin anormal surgida durante la ejecucin de una
secuencia de cdigo. Se pueden producir errores fatales (irrecuperables) que provocan
la finalizacin del programa y otros que el programador debe tener en cuanta y que
son fcilmente recuperables. Java obliga a que el programador prevea este tipo de
situaciones capturando el error producido.
Las excepciones pueden ser generadas por el intrprete o por el propio cdigo. Cuando
se produce una excepcin se detiene la ejecucin del programa, se crea un objeto que la
representa y se enva al mtodo que lo ha provocado. El mtodo puede gestionar la
excepcin (capturarla), o dejar que el gestor del interprete Java lo trate, el cual mostrar
un mensaje describiendo la excepcin.
Este cdigo devuelve una salida con la excepcin que ha saltado, indicando en que lnea,
documento y porque se produce el error.
Las excepciones tienen especial importancia puesto que:
- Permiten determinar la condicin de error y reaccionar ante ella.
- Evita que el programa termine automticamente y de manera anmala
La gestin de excepciones se lleva a cabo con un bloque de cdigo con cinco palabras
clave: try, catch, throw, throws y finally.
El esquema general del bloque es el siguiente:
try {
// cdigo que puede provocar la excepcion
}
catch (tipoExcepcion1 objExcepcion) {
//
cdigo
que
se
ejecuata
cuando
se
produce
tipoExcepcion1
}
catch (tipoExcepcion2 objExcepcion) {
//
cdigo
que
se
ejecuata
cuando
se
produce
tipoExcepcion2
}
finally {
// se ejecuta siempre se produzca o no la excepcin
}
7/11
la
excepcion:
la
excepcion:
Tipos de excepcion
Todos los tipos de excepcion son subtipos de la clase Throwable, que est en la parte
superior de la jerarqua de clases de excepcion.
Throwable
Error
Exception
...
RunTimeException
IOException
AWTException
NullPointerException
EOFException
IndexOutOfBoundsEx
FileNotFoundEx
NegativeArraySizeEx.
MalformedURLEx
8/11
** La sentencia try-catch slo ejecuta el primer catch que se corresponde con la excepcin
producida, obviando el resto.
En este ejemplo, java impide su compilacin e informa de un error indicando que la excepcion
ya ha sido capturada,
throw y throws
El programador puede lanzar sus propias excepciones de manera explcita,
permitiendo que los mtodos respondan a circunstancias inesperadas.
} catch (IllegalArgumentException e) {
System.out.printlh (Denominador Negativo);
}
9/11
10/11
ExcepcionDenominadorCero(){
super();
}
ExcepcionDenominadorCero(String s){
super(s);
}
static void
{
int d
if (d
int a
}
calculo()trows ExcepcionDenominadorCero
= 0;
== 0) throw new ExcepcionDenominadorCero ();
= 10 / d;
11/11