Antes de empezar puedes descargar el proyecto haciendo clic AQUI.
Qué es una interfaz?
Una interfaz es un conjunto de métodos abstractos y/o constantes, por lo tanto especifican que operaciones se deben realizar, pero no indican como se llevan a cabo.
Como declarar una interfaz?
La declaración de una interfaz empieza con la palabra interface, todos los miembros de una interfaz den ser públicos, y no se provee ninguna implementación como lo son las variable de insgancia (atributos) o métodos concretos.
Como implementar una interfaz?
Para usar una interfaz, una clase concreta debe implementar todos los métodos de la interfaz, Se usa la palabra implements, seguido del nombre de la interfaz para indicar que se implementa la misma.
En el caso de no implementar todos los métodos, debemos declarar nuestra clase como abstract.
Por qué usar interfaces?
La sinterfaces se usan cuando clases que no se relacionan o no tienen nada en común, requieren compartir métodos idénticos, de éste modo podemos procesar polimórficamente nuestras clases.
Esposible crear interfaces que describan en forma general la funcionalidad, y luego crear clases que implementen dicha funcionalidad.
Interfaces de Java y ordenar datos de un ArrayList
Como ya se explicó, podemos crear una interfaz y e implemntarla posteriormente en clases concretas. Java posee muchas interfaces predefinidas. Para este ejemplo usaremos compareTo, al que le vamos a proveer de implementación para ordenar datos de un ArrayList.
De seguro te preguntas por qué proveer una implementación de éste método en lugar de crear uno propio, lo hacemos porque existen otras clases que dependen de los argumentos que retorna éste método. Lo que hacemos cuando editamos éste método es "enseñarle a Java" como determinar qué parámetro es mayor. De ese modo se pueden realizar otras operaciones, como ordenamiento de un ArrayList de objetos.
Ejemplo
Vamos a crear una aplicacion que crea estudiantes con atributos de ID(numero unico), nombre, fecha de nacimiento y rendimieto academico (IRA). existe otra clase llamad Curso, que almacena los estudiantes en un Arraylist de tipo Estudiante.
Primero la clase que define el tipo de datos Estudiante:
Esta parte del codigo define únicamente atributos, getters y setters:
Para ordenar los datos se requiere sobreescribir el método compareTo:
La segunda parte la constituye la case Curso, en la cual se almacenan y organizan los datos. Nótese el uso de Collections.sort(listaEstudiantes). Esté método recibe como parámetro de entrada el ArrayList, pero para realizar el ordenamiento depende de nuestra sobreescritura del método compareTo en la clase Estudiante.
Solo hace falta una clase aplicación que ponga a prueba nuestra implementación de la interfaz.
Obtenemos una salida como esta:
Otra Interfaz importante : cloneable
Que es un clon?
Un clon de un objeto es otro objeto con una identidad distinta pero con el mismo contenido. Para definir un clon, una clase debe implementar cloneable y debe sobreescribir el metodo Object's clone con un modificador público.
Que es necesario para clonar un objeto?
Los objetos que pueden ser clonados deben ser una instancia de una clase que implementa la intefaz cloneable. Si una clase permite a los clientes clonar sus instancias debe sobreescribir al método Object's clone con un modificador público.
Por qué usar la interfaz cloneable?
Cuando un objeto es copiado a otro usando el operador de asignación, solo se copia la referencia de dicho objeto, lo que significa que los cambios en un objeto, se ven reflejados en el otro también.
El método clone(), copia el contenido de un objeto a otro, pero hay que ser cuidadosos, porque podriamos copiar una referencia contenida en el otro objeto.
El método clone(), copia el contenido de un objeto a otro, pero hay que ser cuidadosos, porque podriamos copiar una referencia contenida en el otro objeto.
Ejemplo:
Primero una calse para realizar el proceso de clonación, se utiliza manejo de excepciones.
Luego una clase para poner a prueba el manejo de excepciones.
No hay comentarios.:
Publicar un comentario