TODO SOBRE LAS INVARIANTES DE CLASE JAVA

En este post hablare sobre las invariantes de clase en el lenguaje de programación Java. Los invariantes de Java son simples verificaciones a nivel de código para evitar errores a la hora de programar.A las invariantes de clase también se les conoce como aserciones en Java.

Tabla de contenido
  1. ¿Que es una invariante de clase en java?
  2. ¿Cuando se establecen las aserciones o invariantes de clase?
  3. Como se compone una invariante de clase en java?
  4. Como crear y configurar las invariantes de clase en java usando eclipse?
    1. Activar aserciones o invariantes en Eclipse
    2. Tutorial sobre aserciones e invariantes de clase
  5. Ejemplos de invariantes de clase en Java

¿Que es una invariante de clase en java?

El invariante de una clase es un conjunto de aserciones (afirmaciones) que indican las propiedades que en todo momento deben cumplir las instancias de esa clase, y que pueden utilizarse como suposiciones dentro de todos los métodos sin necesidad de que aparezcan en las pre-condiciones y sin necesidad de verificarlos.

En programación, concretamente en programación orientada a objetos, las "invariantes de clase" son invariantes usadas para restringir los objetos de una clase. Los métodos de la clase deben respetar la invariante. La invariante de la clase restringe el estado guardado en el objeto.

Recomendado:   APP INVENTOR: GRABAR Y REPRODUCIR AUDIO O NOTA DE VOZ (SOUNDRECORDER)

¿Cuando se establecen las aserciones o invariantes de clase?

Las invariantes de la clase se establecen durante su construcción y se mantienen entre las llamadas a métodos públicos. Es posible romper la invariabilidad de la clase entre llamadas a métodos privados, pero no es aconsejable. Las invariantes de clase son mas para que el programador sepa que tipo de datos u objetos tiene restringidos en el software que esta construyendo, pues una vez generado o construido el proyecto, estas invariantes no las vera el usuario final.

Como se compone una invariante de clase en java?

Un invariante de clase está compuesto básicamente por lo siguiente:

  1. Restricciones sobre los valores que pueden tomar los atributos de la clase.
  2. Restricciones sobre los valores que pueden tomar los objetos hacia los cuales hay una asociación.
  3. Relaciones entre los atributos y/o los objetos con los cuales se relaciona.

Como crear y configurar las invariantes de clase en java usando eclipse?

Antes de empezar creando nuestras invariantes o aserciones, debemos primero configurar nuestro entorno de desarrollo para mostrar las aserciones o mensajes de error, ya que de lo contrario así nuestras aserciones esten bien programadas, no se moestrara ningun mensaje.

Activar aserciones o invariantes en Eclipse

Ya sea en Eclipse u otro entorno de desarrollo, debemos activar las aserciones o invariantes de clase para que muestren su mensaje de error.

aserciones o invariantes de clase java

Ahora en esta pantalla van a configurar tal y como se muestra en la siguiente imagen.

activar aserciones en java e invariantes de clase

Ahora que ya tenemos activados los mensajes de aserciones o invariantes, podemos empezar a programar.

Recomendado:   CONFIGURAR VERSIÓN MÓVIL DE UNA PLANTILLA EN BLOGGER

Tutorial sobre aserciones e invariantes de clase

En el siguiente vídeo explico como crear invariantes de clase en el lenguaje de programación java. Para el vídeo he usado el entorno de desarrollo Eclipse.

Ejemplos de invariantes de clase en Java

Aquí vemos un ejemplo de invariante de clase en donde la aserción nos dice que para la clase fecha los valores del dia deben estar entre 1 y 31, es decir que no podemos escribir una fecha que tenga el dia 0. La segunda aserción es para la hora, en donde se ve claramente un formato de 24 horas que nos indica que la hora de un día va a estar entre 0 y 24 horas.

class Fecha {
	/**
	 * Variables
	 */
	int dia;
	int hora;

	/**
	 * Metodo constructor
	 * @param dia numero entero que indica el dia
	 * @param hora numero entero que indica la hora en un formato de 24 horas.
	 */
	public Fecha(int dia, int hora) {

		this.dia = dia;
		this.hora = hora;
		invariant();
	}

	/**
	 * Metodo que contiene la invariantes o aserciones que se deben cumplir
	 */
	private void invariant() {
		/**
		 * El dia debe estar entre un numero entero de 1 a 31
		 */
		assert (1 <= dia && dia <= 31) : "Dia incorrectos";
		/**
		 * La hora debe ser un numero entero entre 0 y 24
		 */
		assert (0 <= hora && hora < 24) : "Hora incorrecta";
	}

	/**
	 * Metodo main para probar que si se estan mostrando bien las respuestas.
	 * @param args
	 */
	public static void main(String[] args) {
		Fecha a = new Fecha(4442, 233);
	}

}

Mensaje de error que se muestra al no cumplirse las dos aserciones o invariantes.

aserciones e invariantes de clase en java

Espero que este articulo te haya ayudado. No olvides calificar antes de irte.

Recomendado:   FUNC EN C# | FUNCIONES Y EXPRESIONES LAMBDA - EJEMPLOS EN VISUAL STUDIO
Subir