lunes, 15 de junio de 2015

INTERFACES

¿Qué es una interfaz?
Una interfaz en Java es una clase abstracta pura, es decir una clase donde todos los métodos son abstractos, pero ninguno de ellos se implementa. 


Para crear una interfaz, se utiliza la palabra clave interfaz en lugar de class. La interfaz puede definirse public o sin modificador de acceso, y tiene el mismo significado que para las clases.
Para indicar que una clase implementa los métodos de una interfaz se utiliza la palabra clave implements. El compilador se encargará de verificar que la clase efectivamente declare e implemente todos los métodos de la interfaz. Una clase puede implementar más de una interfaz.



Ventajas al utilizar interfaces:

  • Se organiza la programación.
  • Obligar a que ciertas clases utilicen los mismos métodos (nombres y parámetros).
  • Establecer relaciones entre clases que no estén relacionadas.
  • Otra ventaja clara de las interfaces es que nos permiten declarar constantes que van a estar disponibles para todas las clases que queramos (implementando esa interfaz). Nos ahorra código evitando tener que escribir las mismas declaraciones de constantes en diferentes clases.

INTERFAZ COMPARABLE

La interfaz Comparable permite comparar 2 objetos, permitiendo hacer ordenaciones de los mismos. Al implementar esta interfaz, nos obliga a implementar el método compareTo (Object o).


EJEMPLO:

Este ejemplo permitirá tener una lista de estudiantes, la cual será presentada por orden alfabético, por edad y por su irá.
Para ello se creará 3 clases:

  1. Estudiante
  2. Curso
  3. Aplicación
  • CLASE ESTUDIANTE
Paquetes importados 



Atributos de Estudiante
La clase Estudiante implementará la interfaz COMPARABLE.



Constructores por defecto e inicialización 



Métodos getters and setters
Estos sirven para poder obtener o modificar los atributos de Estudiante, debido a que su acceso es privado.



Método para obtener la edad
Este método calcula la edad a partir del año de nacimiento de una persona.


Método de la interfaz compareTo
Este método es obligado a usarse al implementar la interfaz Comparable.


  • CLASE CURSO
Paquetes importados
Atributo, Constructor y Método getter y setter




Método para agregar estudiantes e imprimir

Método para ordenar por nombre


  • CLASE APLICACIÓN
Implementación del método main


SALIDA


Método para ordenar por edad



SALIDA


Método para ordenar por ira



SALIDA



INTERFAZ CLONEABLE

La interfaz Cloneable permite que una clase  pueda realizar la copia de objetos tal cual, permitiendo hacer por tanto duplicados exactos, aunque eso sí, objetos al fin y al cabo distintos.  Al usar esta interfaz es como si al clonar un objeto tuviéramos un gemelo, son parecidos pero personas distintas.

EJEMPLO:
Usaremos la clase Estudiante del ejemplo anterior, la cual implementará la interfaz Cloneable.






APLICACIÓN





Cuando se quiera que los objetos de una clase puedan ser copiados debemos implementar la interfaz Cloneable y el método clone().  Esto suele ser útil por ejemplo cuando tenemos una clase con muchos atributos o propiedades, y al trabajar con ella por ejemplo para calcular algún dato no queremos trabajar con ella directamente para no modificar el objeto original. Una opción es crear un objeto clonado y trabajar directamente sobre éste, sin afectar al original en ningún atributo. En realidad, la clonación de objetos será algo que nos puede resultar útil para muchas cosas.
Y por último, recordar que tratar de realizar una asignación de tipo p2 = p1 sería erróneo, ya que no generaríamos un clon sino dos variables que estarían apuntando al mismo objeto, no a distintos objetos.[]


BIBLIOGRAFIA:
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=671:para-que-sirven-las-interfaces-java-implementar-una-interfaz-del-api-ventajas-y-ejemplos-basicos-cu00697b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

http://elvex.ugr.es/decsai/java/pdf/AC-interfaces.pdf

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=587:ejercicio-ejemplo-resuelto-interface-comparable-y-metodo-compareto-api-java-comparar-objetos-cu00911c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=584:ejercicio-y-ejemplo-resuelto-interface-cloneable-y-metodo-clone-del-api-java-como-duplicar-objetos-cu00910c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html





No hay comentarios:

Publicar un comentario