Buenas tardes,
Aquí dejo mi ejercicio del tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos" para su corrección:
Superclase Figura:
/**
* EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
* Esta Clase define una Superclase de la que "beberan" otras clases.<br>
* Clase 1 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
* @author aprenderaprogramar.com
* @version 20151204.01
*/
public class Figura_CU00694B {
// Inicialización de Atributos
protected int dimensionPrincipal;
/**
* Constructor 1 del Producto. Atribututos sin asignación de Valores
* @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
*/
public Figura_CU00694B() {
dimensionPrincipal = 0;
} // Cierre del Constructor 1
/**
* Constructor 2 del Producto. Atribututos con asignación de Valores
* @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
*/
public Figura_CU00694B(int dimensionPrincipal) {
this.dimensionPrincipal = dimensionPrincipal;
} // Cierre del Constructor 2
/**
* Método para establecer la Medida Principal de la Figura
* @param valorDimensionPrincipal El parámetro valorDimensionPrincipal define el valor que contendrá la Medida Principal de la Figura
*/
public void setDimensionPrincipal(int valorDimensionPrincipal) {
dimensionPrincipal = valorDimensionPrincipal;
} // Cierre del método para establecer la Medida Principal de la Figura
/**
* Método para para obtener la Medida Principal de la Figura
* @return la Medida Principal de la Figura
*/
public int getDimensionPrincipal(){ return dimensionPrincipal; }
/**
* Método de Sobreescritura del método equals
* @return Comparación de si dos Figuras tienen igual la Medida Principal
*/
public boolean equals (Object obj) {
/* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Figura.
* Si no lo es, se devuelve como resultado del método false:
* los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
if (obj instanceof Figura_CU00694B) {
/* En segundo lugar, se crea una variable de tipo Figura a la que se asigna
* el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
* Esta variable se crea para poder invocar campos y métodos de la clase Figura,
* ya que esto no se podria hacer sobre un objeto de tipo Object.
* Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
Figura_CU00694B tmpFigura = (Figura_CU00694B) obj;
/* Comparación para ver si coinciden su dimensionPrincipal.
* La dimensionPrincipal se compara con el operador == por ser un tipo primitivo*/
if (this.dimensionPrincipal == tmpFigura.dimensionPrincipal) {
return true;
} else {
return false; }
} else {
return false;
}
} //Cierre del método equals
/**
* Método para mostar la Información de la Figura
*/
public void mostrarDatos() {
System.out.println ("\tMedida Principal de la Figura: " + dimensionPrincipal);
} // Cierre del método para mostrar información de la Figura
} // Cierre de la Clase
Subclase Cuadrado:
/**
* EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
* Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
* Clase 2 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
* @author aprenderaprogramar.com
* @version 20151204.01
*/
public class Cuadrado_CU00694B extends Figura_CU00694B {
// No hay campos específicos de la subclase.
/**
* Constructor 1 del Producto. Atribututos sin asignación de Valores
*/
public Cuadrado_CU00694B () {
super();
} // Cierre del constructor 1
/**
* Constructor 2 del Producto. Atribututos con asignación de Valores
*/
public Cuadrado_CU00694B (int dimensionPrincipal) {
super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
// No hay campos específicos de la subclase.
} // Cierre del constructor 2
// METODOS ESPECIFICOS DE LA SUBLASE
/**
* Método de Sobreescritura del método equals
* @return Comparación de si dos cuadrados son iguales si coinciden su Medida Principal.
*/
public boolean equals (Object obj) {
/* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Cuadrado.
* Si no lo es, se devuelve como resultado del método false:
* los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
if (obj instanceof Cuadrado_CU00694B) {
/* En segundo lugar, se crea una variable de tipo Cuadrado a la que se asigna
* el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
* Esta variable se crea para poder invocar campos y métodos de la clase Cuadrado,
* ya que esto no se podria hacer sobre un objeto de tipo Object.
* Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
Cuadrado_CU00694B tmpCuadrado = (Cuadrado_CU00694B) obj;
/* En este caso se invoca el método equals de la superclase Figura,
* para que dos cuadrados sean iguales han de coincidir la dimensionPrincipal.*/
if (super.equals(tmpCuadrado)) {
return true;
} else {
return false;
}
} else {
return false;
}
} // Cierre del método equals
/**
* Método para clacular el área del cuadrado
* @return El área del cuadrado.
*/
public double getAreaCuadrado() {
return dimensionPrincipal * dimensionPrincipal;
} // Cierre del método para clacular el área del círculo
/**
* Método para mostar la Información del Cuadrado
*/
public void mostrarDatos() {
super.mostrarDatos();
System.out.println ("\tPor lo tanto, el Área del Cuadrado es: " + dimensionPrincipal + "*" + dimensionPrincipal + " = " + getAreaCuadrado());
} // Cierre del método para mostar la Información del Cuadrado
} // Cierre de la Clase
Subclase Círculo:
/**
* EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
* Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
* Clase 3 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
* @author aprenderaprogramar.com
* @version 20151204.01
*/
public class Circulo_CU00694B extends Figura_CU00694B {
// No hay campos específicos de la subclase.
/**
* Constructor 1 del Producto. Atribututos sin asignación de Valores
*/
public Circulo_CU00694B () {
super();
} // Cierre del constructor 1
/**
* Constructor 2 del Producto. Atribututos con asignación de Valores
*/
public Circulo_CU00694B (int dimensionPrincipal) {
super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
// No hay campos específicos de la subclase.
} // Cierre del constructor 2
// METODOS ESPECIFICOS DE LA SUBLASE
/**
* Método de Sobreescritura del método equals
* @return Comparación de si dos círculos son iguales si coinciden su Medida Principal.
*/
public boolean equals (Object obj) {
/* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Círculo.
* Si no lo es, se devuelve como resultado del método false:
* los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
if (obj instanceof Circulo_CU00694B) {
/* En segundo lugar, se crea una variable de tipo Círculo a la que se asigna
* el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
* Esta variable se crea para poder invocar campos y métodos de la clase Círculo,
* ya que esto no se podria hacer sobre un objeto de tipo Object.
* Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
Circulo_CU00694B tmpCirculo = (Circulo_CU00694B) obj;
/* En este caso se invoca el método equals de la superclase Figura,
* con lo que se dice que para que dos círculos sean iguales
* han de coincidir la dimensionPrincipal.*/
if (super.equals(tmpCirculo)) {
return true;
} else {
return false;
}
} else {
return false;
}
} // Cierre del método equals
/**
* Método para clacular el área del círculo
* @return El área del círculo.
*/
public double getAreaCirculo() {
return 3.1416 * (dimensionPrincipal*dimensionPrincipal);
} // Cierre del método para clacular el área del círculo
/**
* Método para mostar la Información del Circulo
*/
public void mostrarDatos() {
super.mostrarDatos();
System.out.println ("\tPor lo tanto, el Área del Circulo es: 3.1416*(" + dimensionPrincipal + "*" + dimensionPrincipal + ") = " + getAreaCirculo());
} // Cierre del método para mostar la Información del Circulo
} // Cierre de la Clase
Clase Test:
/**
* EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
* Esta Clase define una clase test para probar Herencias y método Equals.<br>
* Clase 4 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
* @author aprenderaprogramar.com
* @version 20151204.01
*/
public class TestEquals_CU00694B{
public static void main (String [ ] Args) {
/* Creación de 3 objetos Cuadrado
* Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
Cuadrado_CU00694B cuadrado1 = new Cuadrado_CU00694B (55);
Cuadrado_CU00694B cuadrado2 = new Cuadrado_CU00694B (25);
Cuadrado_CU00694B cuadrado3 = new Cuadrado_CU00694B (55);
/* Creación de 3 objetos Circulo
* Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
Circulo_CU00694B circulo1 = new Circulo_CU00694B (48);
Circulo_CU00694B circulo2 = new Circulo_CU00694B (48);
Circulo_CU00694B circulo3 = new Circulo_CU00694B (25);
// Se limpia la pantalla de la Consola
System.out.println("\f");
// Se muestran en pantalla las compraciones de los distintos objetos
System.out.println ("COMPARATIVA DE LOS CUADRADOS");
System.out.println ("----------------------------");
System.out.println ("- El Cuadrado1:");
cuadrado1.mostrarDatos();
System.out.println ("- El Cuadrado2:");
cuadrado2.mostrarDatos();
System.out.println ("- El Cuadrado3:");
cuadrado3.mostrarDatos();
System.out.println ("- Comparaciones:");
System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado2? " + cuadrado1.equals(cuadrado2) );
System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado3? " + cuadrado1.equals(cuadrado3) );
System.out.println ("\t¿Son iguales el cuadrado2 y el cuadrado3? " + cuadrado2.equals(cuadrado3) );
System.out.println(""); // Se imprime una línea en Blanco de separación
System.out.println ("COMPARATIVA DE LOS CÍCULOS");
System.out.println ("--------------------------");
System.out.println ("- El Círculo1:");
circulo1.mostrarDatos();
System.out.println ("- El Círculo2:");
circulo2.mostrarDatos();
System.out.println ("- El Círculo3:");
circulo3.mostrarDatos();
System.out.println ("- Comparaciones:");
System.out.println ("\t¿Son iguales la circulo1 y la circulo2? " + circulo1.equals(circulo2) );
System.out.println ("\t¿Son iguales la circulo1 y la circulo3? " + circulo1.equals(circulo3) );
System.out.println ("\t¿Son iguales la circulo2 y la circulo3? " + circulo2.equals(circulo3) );
System.out.println(""); // Se imprime una línea en Blanco de separación
System.out.println ("Se realiza una ultima comprobación entre uno de los cuadrados y un círculo con la misma Medida Proncipal");
System.out.println ("\t¿Son iguales la cuadrado2 y la circulo3? " + cuadrado2.equals(circulo3) );
} //Cierre del main
} //Cierre de la clase
Espero vuestros comentarios,
Muchas gracias,
Saludos,