Apuntes

Anuncio
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
Paquetes e Interfaces
Qué es una interfaz?
Una interfaz define un protocolo de comportamiento que puede ser implantada
por cualquier clase en la jerarquía de clases. Una interfaz define un conjunto de
métodos pero no los imlanta. La clase que implante la interfaz implantará todos
los métodos definidos en la interfaz.
Una interfaz es parecida a una clase abstracta pero difiere de las siguientes
formas:
•
Una interfaz no puede implantar ninguno de sus métodos, mientras que una
clase abstracta si.
•
Una clase puede implantar muchas interfaces pero solo puede tener una
superclase.
•
Una interfaz no es parte de la jeraquía de clases. Una misma interfaz puede
ser implantada por distintas clases aún cuando no estén relacionadas.
Definición de una Interfaz
Al definir una interfaz, es importante recordar los siguientes puntos:
•
Todos los miembros son públicos pero no hay necesidad de declararlos
como tal.
•
Todos los métodos deben ser abstractos.
•
Todos los atributos son static y final.
El Listado 1 muestra un ejemplo de como declarar una interfaz. Mientras que el
Listado 2 muestra un ejemplo de una clase que implementa la interfaz Sortable.
También es posible definer nuevas interfaces que esten basadas en otras
interfaces existentes.
interface Accesible extends Readable, Writeable
{
.....
}
1 de 4
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
public interface Sortable
{
/*
* Compara los elementos i y j y
* para elemento_i >, ==, < elemento_j regresa
*
>0, 0, <0 si la direccion es INCREASING
*
<0, 0, >0 si la direccion es DECREASING
*/
int compare( int i, int j );
void swap( int i, int j );
int first();
int last();
boolean sorted();
void sorted( boolean b);
void direction( int dir );
int direction();
static final int INCREASING = 1;
static final int DECREASING =-1;
}
Listado 1 Ejemplo Interfaz
2 de 4
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
class IntArray implements Sortable
{
public IntArray( int a[], int len, int f )
{
arr = a;
length = len;
dirFlag = f;
}
public int compare( int i, int j );
public void swap( int i, int j );
public int first() { return (0); }
public int last() { return(length -1); }
public boolean sorted() { return sortFlag; }
public void sorted( boolean b) { sortFlag = b; }
public void direction( int dir )
{
if ( dirFlag != f)
{
dirFlag =f;
sortFlag = false;
}
}
public int direction() { return dirFlag; }
// otros métodos ......
private int dirFlag = Sortable.INCREASING;
private boolean sortFlag = false;
private int length;
private int arr[];
}
Listado 2 Ejemplo Interfaz
3 de 4
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
Paquetes
Los paquetes se utilizan para facilitar el uso de clases, evitando el conflicto
entre nombres, controlar acceso y agrupar clases e interfaces relacionadas. Un
paquete es una colección de clases e interfaces relacionadas que proveen
protección de acceso y manejo de nombres en un espacio de nombres.
Como crear un paquete.
Para crear un paquete, se coloca una clase o una interfaz en el. Para esto, se
coloca la instrucción package al inicio del archivo fuente en el que se define la
clase o intefaz. Si se tuviera una clase Circle.java que perteneciera al paquete
misGraficas:
package misGraficas;
public class Circle extends Graphic implements Draggable {
...
}
Acceso a miembros de un paquete
Para utilizar los miembros publicos de un paquete se tienen varias opciones:
•
Hacer referencia al nombre largo del miembro misGraficas.Circle
•
Importar al miembro del paquete import misGraficas.Circle;
•
Importar a todos los miembros de un paquete import misGraficas.*;
4 de 4
Elaborado por: M.C. Cecilia M. Curlango Rosas
Descargar