Las interfaces en Java. Mostramos una aplicación de ejemplo completa en Java que calcula el área de figuras geométricas: triángulo, rectángulo, cuadrado y círculo. Tutorial donde explicamos qué son las interfaces en Java (y en POO Programación Orientada a Objetos). Para ello empleamos Java como lenguaje de programación y NetBeans como IDE de desarrollo. Explicamos cómo crear la aplicación paso a paso y con el código fuente completo. Usaremos una interfaz de ejemplo y explicaremos qué son las clases interfaces y cómo usarlas.

Enunciado del ejemplo de interfaces en Java y Programación Orientada a Objetos (POO)

A partir de la interfaz:

Desarrollaremos una aplicación Java que deberá usar la interfaz anterior y crear una clase por cada figura geométrica de la que calculará el área: cuadrado, círculo, rectángulo y triángulo. Se definirán los atributos necesarios para poder implementar la interfaz dada en cada clase, también los métodos constructores y accesores (setters y getters) necesarios.

Un poco de teoría: las interfaces en Java

Una interfaz (interface) en Java es una colección de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Un interface es una clase especial que sólo contiene declaraciones de métodos (pero no sus cuerpos) y constantes. Serán las clases que implementen estas interfaces las que describan la lógica del comportamiento de los métodos. La principal diferencia entre interface y abstract es que un interface proporciona un mecanismo de encapsulación de los protocolos de los métodos sin forzar al usuario a utilizar la herencia.

Una clase que implemente un interface debe tener todas las constantes del interface y, lo más importante, debe de proporcionar un cuerpo a todos los métodos declarados en el interface.

Un interface, por tanto, define un rol o comportamiento, una forma de usar una clase, ya que todas las clases que implementen un interface tienen que tener los métodos del interface.

Para declarar una clase interfaz emplearemos «interface», por ejemplo:

Para usar la interfaz definida emplearemos «implements»:

Crear aplicación Java en el IDE NetBeans

En primer lugar necesitaremos disponer del IDE de desarrollo NetBeans, a continuación mostramos un tutorial donde explicamos paso a paso cómo descargarlo e instalarlo:

Una vez instalado, para crear una nueva aplicación Java abriremos NetBeans y pulsaremos en el menú «Archivo» – «Proyecto Nuevo»:

Crear aplicación Java en el IDE NetBeans

Seleccionaremos «Java» en la izquierda y en la derecha seleccionaremos «Java Application», pulsaremos «Siguiente»:

Crear aplicación Java en el IDE NetBeans

Introduciremos el nombre para el proyecto en Project Name, por ejemplo «Geometria», la ubicación (en Project Location) y marcaremos «Create Main Class» con el nombre «geometria.Geometria», pulsaremos en «Terminar»:

Crear aplicación Java en el IDE NetBeans

El asistente de NetBeans nos creará los ficheros necesarios para nuestro nuevo proyecto:

Crear aplicación Java en el IDE NetBeans

Crear clases Java en NetBeans

Clase interfaz FiguraGeometrica

En el enunciado de este ejemplo indicamos que tendremos una clase interfaz, para crearla en NetBeans pulsaremos con el botón derecho del ratón sobre el paquete generado al crear el proyecto y en el menú emergente seleccionaremos «Nuevo» – «Java Interface»:

Clase interfaz FiguraGeometrica

Introduciremos el nombre para la clase interfaz, por ejemplo «FiguraGeometrica», pulsaremos en «Terminar»:

Clase interfaz FiguraGeometrica

El asistente para crear una nueva java interface nos creará el fichero .java correspondiente, añadiremos el siguiente código:

Clase interfaz FiguraGeometrica

Agregar clase Circulo con NetBeans que implementará la clase interfaz FiguraGeometrica

La clase círculo calculará el área de un círculo, como atributos tendrá el radio, el valor de pi y el área del radio. Dicha clase implementará la interfaz FiguraGeometrica por lo que habremos de definir obligatoriamente el método «area». Para agregar esta clase en NetBeans pulsaremos con el botón derecho sobre el paquete de nuestra aplicación Java y en el menú emergente seleccionaremos «Nuevo» – «Java Class»:

Clase Circulo

Introduciremos el nombre de la clase, por ejemplo Circulo y pulsaremos «Terminar»:

Clase Circulo

El código fuente Java de la clase Circulo será el siguiente:

Clase Circulo

Si analizamos un poco el código de la clase veremos lo siguiente:

  • En la declaración de clase public class Circulo implements FiguraGeometrica con implements estamos indicando que la clase Circulo implementará la interfaz FiguraGeometrica. Por lo tanto deberemos añadir todos los métodos de esta interfaz y desarrollarlos con su código correspondiente, en este ejemplo solo el método «area».
  • Declaramos los atributos necesarios. radio, areaRadio y pi.
  • Añadiremos el método constructor de clase: public Circulo(double radio).
  • Añadimos los getters necesarios (los que devolverán el valor de los atributos), por ejemplo getRadio y getAreaRadio.
  • Añadiremos los setters necesarios (los que servirán para añadir el valor de los atributos para el cálculo del área), por ejemplo setRadio.
  • Añadiremos el método area pues estamos obligados por la implementación de la interfaz FiguraGeometrica, en este método realizaremos el cálculo del área.

El código fuente Java completo de la clase «Circulo»:

Añadir resto de las clases Cuadrado, Rectangulo, Triangulo

El resto de las clases para calcular el área de un cuadrado, rectángulo y triángulo las añadiremos exactamente de la misma forma que la clase Circulo, cambiando lógicamente el método «area» con el cálculo correspondiente de cada figura geométrica. A continuación mostramos el código de cada clase:

  • Rectangulo (Rectangulo.java):

  • Triangulo (Triangulo.java):

  • Cuadrado (Cuadrado.java):

Probar clases en Java, calculando el área de un rectángulo, triángulo, cuadrado y círculo usando las clases anteriores

Tras crear la interfaz FiguraGeometrica y las clases que la implementan: Circulo, Triangulo, Rectangulo, Cuadrado. Desde la clase principal de la aplicación Geometria, instanciaremos las clases anteriores para comprobar que funcionan correctamente, para ello añadiremos el siguiente código java en Geometria.java:

Probar clases en Java, calculando el área de un rectángulo, triángulo, cuadrado y círculo usando las clases anteriores

Analizando un poco el código Java anterior, básicamente instanciamos y referenciamos cada clase con:

Cuadrado cuadrado = new Cuadrado(10);

La instanciación sería:

Cuadrado cuadrado;

La referenciación sería:

cuadrado = new Cuadrado (10);

La instanciación y referenciación de clases puede hacerse en la misma línea con:

Cuadrado cuadrado = new Cuadrado(10);

Puesto que le hemos pasado el valor «10» al constructor de la clase «Cuadrado», para calcular el área del cuadrado de lado 10 será suficiente con ejecutar el método «area»:

cuadrado.area();

Y con el método accesor (getter) correspondiente obtendremos el valor del área calculada:

cuadrado.getareaCuadrado();

Básicamente repetimos la instanciación y referenciación para el resto de clases y mostramos el resultado por pantalla.

Para comprobar que la aplicación Java funciona y compilarla pulsaremos en el botón «Ejecutar» (tecla rápida F6):

Probar clases en Java, calculando el área de un rectángulo, triángulo, cuadrado y círculo usando las clases anteriores

Código fuente completo de la aplicación AjpdSoft Cálculo área figuras geométricas Java

A continuación mostramos enlace a la descarga completamente gratuita del código fuente en Java con NetBeans del ejemplo del tutorial:

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.