Crear una interfaz en java: Definiendo el contrato de la Calculadora

Por descargarpseint / hace 6 meses / 0 Comentarios ».

Hoy voy a presentarte el 3 artículo del curso en la nube Tutorial en Java Programar una Calculadora. En el vas a aprender a crear una interfaz en java, vas a declarar, paso a paso la interfaz Calculadora y, aprovechando el ejercicio, te voy a introducir conceptos esenciales del lenguaje como son herencia, clase abstracta, clases envoltorio (wrappers) y contrato definido por la signatura de un método.  ¿Preparado para seguir aprendiendo a programar en java?.

¿Qué es un interfaz en java?. Un poco de teoría.

Lo primero que vas a necesitar saber es qué es un interfaz, cómo definirlo y cual es su utilidad a la hora de programar en java. En Arrakis nos ofrecen una definición de interfaz bastante correcta y a la vez muy académica.

En Java un interfaz es una clase abstracta pura, es decir, una clase donde todos sus métodos son abstractos (no implementa ninguno de ellos).

Las clases son la base de este lenguaje de programación. Si ya has programado en el paradigma de la orientación a objetos te debe sonar el concepto de herencia. Sino es ese tu caso, entonces te diré que tiene mucho que ver con la herencia en los seres humanos.

La herencia entre dos clases tiene lugar cuando una hereda propiedades de la otra. Es como cuando un hijo hereda el carácter de su padre o los ojos de su madre.

Una clase abstracta, al igual que una clase normal, es una agrupación de datos (variables  que en java se llaman atributos) y código (incluido dentro de funciones, que en java se llaman métodos) pero tiene la característica de que no se pueden crear instancias de ella. Lo que si es posible es programar código dentro de una clase abstracta y después definir clases que hereden dicho comportamiento y que además puedan ampliarlo o adaptarlo a casos específicos.

Ahora que ya te he expuesto todos los conceptos que vas a necesitar para entender el capítulo en que nos encontramos, pasaré a enseñarte algo de código. En concreto, como podemos definir un interfaz Calculadora que declare un contrato (es decir, un conjunto de métodos) que cumplan con todas nuestras necesidades descritas en el artículo de presentación de este curso.

Vamos a declarar el interfaz para la Calculadora.

Lo primero que voy a hacer es recordarte uno de los requisitos que debía satisfacer nuestra calculadora. Te lo cito a continuación

Nuestra calculadora será capaz de sumar, restar, dividir y multiplicar enteros (int, long) y reales (float, double). Además, será capaz de calcular la potencia y raíz cuadrada de números enteros y reales.

Bien, aquí podemos ver que la calculadora tendrá que ser capaz de sumar, restar, dividir, multiplicar, calcular la potencia y raíz cuadrada. Esto quiere decir que tendremos que declarar un método por cada una de las funciones, siendo cada uno de ellos, los responsables de definir que parámetros tendrá que recibir cada una de las operaciones y también cual será el resultado devuelto por cada una de ellas.

Ahora es el momento de comenzar a programar. Lo primero que vas a hacer es declarar el interfaz Calculadora. Para ello tendrás que utilizar las palabras reservadas de java public e interface.

/**

 * Interfaz que describe el contrato de la calculadora

 * que vamos a programar en el curso Programando una Calculadora en Java

 *

 * @author tutorJava

 *

 * @web http://programarenjava.com

 *

 */

public interface Calculadora
  • public:Aquí estás utilizando el modificador de acceso público. ¿Qué significa esto?. Pues que este interfaz podrá ser extendido y declarado por cualquier otra clase del proyecto.
  • interface:Es la palabra reservada existe en java para declarar un interfaz. Cuando declares una clase en esta posición escribirás la palabra reservada class.
  • Calculadora:Es el nombre que le vas a poner al interfaz.

Lo siguiente que vas a hacer es declarar el contrato para la operación sumar. Esto consiste en declarar un método o mejor dicho, declarar su signatura pública. Como ya comentamos en los requisitos de la calculadora, esta operación podrá sumar dos números (enteros, enteros largos, reales y reales largos) dando como resultado otro número de las mismas características.

Number sumar(Number operando1, Number operando2);

  • Number:Es la clase Java que representa a cualquier número. En el próximo capítulo te enseñaré como se relaciona esta clase con las clases envoltorio (Wrappers) que representan a los tipos primitivos (int, long, float, double) a través de la herencia.
  • sumar:Es el nombre del método y por lo tanto la forma de poder invocarlo desde otras partes del código.
  • Number operando1:Aquí estás indicando que el primer numero a sumar estará dentro de un variable llamada operando1 y que será del tipo Number.
  • Number operando2:Lo mismo que para operando1.

Ahora que ya tenemos definido el contrato de la primera operación de la calculadora te propongo que como ejercicio implementes el resto de contratos. Es decir, el interfaz calculadora deberá ofrecer las siguientes operaciones.

Numero restar (Numero operacion1, Numero operacion2)

Numero multiplicar(Numero operacion1, Numero operacion2)

Numero dividir(Numero operacion1, Numero operacion2)

Numero potencia (Numero base, Numero exponente)

Numero raizCuadrada(Numero base)

Cosas que has aprendido en este artículo.

  1. Qué una clase abstracta pura, no implementa ninguno de los métodos que define.
  2. La herencia entre dos clases se produce cuando una hereda atributos de la otra.
  3. Una clase abstracta puede implementar métodos pero no se pueden declarar instancias (objetos) de la misma.
  4. Un interfaz se declara utilizando la palabra reservada interface
  5. Un método se puede declarar dentro de un interfaz sin programar su funcionamiento.
  6. A declarar la interfaz Calculadora utilizando la clase Number.

Precisamente en el próximo capítulo haré un inciso y, antes de pasar a explicarte como puedes programar un interfaz desde eclipse para el proyecto de la calculadora, te presentaré una versión simplificada de que es la herencia en java aprovechando la relación de herencia existente entre Number y las clases envoltorio Integer, Long, Float y Double. Mientras tanto te dejo el API oficial de la clase Number ofrecido por Oracle.

Te recuerdo que si has tenido alguna duda con el artículo de hoy puedes transmitírmela dejando un comentario aquí o mandándome un correo electrónico. Si piensas que este curso puede aportar valor a tu formación entonces puedes seguirlo, bien a través de tu lector RSS o dándote de alta en la Newsletter de Programar En Java.

Ver: Descargar Pseint

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *