Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: camoay en 05 de Diciembre 2016, 14:55
-
Buenos días, aquí les dejo mi ejercicio:
Clase Figura:
package aprenderaprogramar.java.iniciacion.clase94;
public class Figura {
private double dimensionPrincipal;
// constructores
Figura(){ dimensionPrincipal = 0; }
Figura(double dimensionPrincipal){ this.dimensionPrincipal = dimensionPrincipal; }
// Métodos
public double getDimensionPrincipal() { return dimensionPrincipal; }
public void setDimensionPrincipal(double dimensionPrincipal) { this.dimensionPrincipal = dimensionPrincipal; }
public String toString(){ return " Objeto Figura, con una Dimension Principal de :"+dimensionPrincipal; }
public boolean equals(Object obj){
if(obj instanceof Figura){
Figura tmpFigura = (Figura) obj;
if(this.dimensionPrincipal == tmpFigura.dimensionPrincipal)
return true;
else
return false;
}else return false;
}// fin método equals
}// fin clase
Clase Círculo:
package aprenderaprogramar.java.iniciacion.clase94;
import java.lang.Math;
public class Circulo extends Figura {
//Constructores
Circulo(){ super(); }
Circulo(double dimensionPrincipal){ super(dimensionPrincipal); }
// Métodos
public double calcularArea(){return Math.PI * getDimensionPrincipal() * getDimensionPrincipal(); }
public String toString(){ return "Objeto Círculo, subclase de Figura :\n"+super.toString(); }
public boolean equals(Object obj){
if(obj instanceof Circulo){
Circulo tmpCirculo = (Circulo) obj;
if(super.equals(tmpCirculo))
return true;
else
return false;
}else return false;
}// fin método equals
}// fin de clase
Clase Cuadrado:
package aprenderaprogramar.java.iniciacion.clase94;
public class Cuadrado extends Figura{
// Constructores
Cuadrado(){ super(); }
Cuadrado(double dimensionPrincipal){super(dimensionPrincipal); }
// métodos
public double calcularArea(){ return getDimensionPrincipal() * getDimensionPrincipal(); }
public String toString(){ return "Objeto Cuadrado, subclase de Figura :\n"+super.toString(); }
public boolean equals(Object obj){
if(obj instanceof Cuadrado){
Cuadrado tmpCuadrado = (Cuadrado) obj;
if(super.equals(tmpCuadrado))
return true;
else
return false;
}else return false;
}// fin método equals
}// fin de clase
Clase Test:
package aprenderaprogramar.java.iniciacion.clase94;
public class Test {
public static void main(String[] args) {
Cuadrado cuadrado1 = new Cuadrado(4);
Cuadrado cuadrado2 = new Cuadrado(4);
Cuadrado cuadrado3 = new Cuadrado(6);
Circulo circulo1 = new Circulo(3);
Circulo circulo2 = new Circulo(3);
Circulo circulo3 = new Circulo(5);
System.out.println ("\nComparaciones con cuadrados");
System.out.println ("¿Son iguales el cuadrado1 y el cuadrado2? "+ cuadrado1.equals(cuadrado2) );
System.out.println ("¿Son el mismo objeto el cuadrado1 y el cuadrado2? "+ (cuadrado1 == cuadrado2));
System.out.println ("¿Son iguales el cuadrado1 y el cuadrado3? "+ cuadrado1.equals(cuadrado3) );
System.out.println ("cuadrado1 es un "+cuadrado1.toString()+" \ny cuadrado3 es un "+ cuadrado3.toString());
System.out.println ("\nComparaciones con círculos");
System.out.println ("¿Son iguales el circulo1 y el circulo2? " + circulo1.equals(circulo2) );
System.out.println ("¿Son el mismo objeto el circulo1 y el circulo2? " + (circulo1 == circulo2) );
System.out.println ("¿Son iguales el circulo1 y el circulo3? " + circulo1.equals(circulo3) );
System.out.println ("circulo1 es un "+circulo1.toString()+" \ny circulo3 es un "+ circulo3.toString());
}// end main method
}// end class
Agradeceré cualquier correccion o sugerencia.
-
Buenos días
En los siguientes enlaces tienes el ejercicio resuelto y momentado:
https://www.aprenderaprogramar.com/foros/index.php?topic=2994.msg13526#msg13526 (https://www.aprenderaprogramar.com/foros/index.php?topic=2994.msg13526#msg13526)
https://www.aprenderaprogramar.com/foros/index.php?topic=4214.msg17583#msg17583 (https://www.aprenderaprogramar.com/foros/index.php?topic=4214.msg17583#msg17583)
https://www.aprenderaprogramar.com/foros/index.php?topic=3587.msg15577#msg15577 (https://www.aprenderaprogramar.com/foros/index.php?topic=3587.msg15577#msg15577)
Un saludo
-
Hola camoay veo bien el código, al principio me resultó extraño el método equals de Circulo y Cuadrado.
Por ejemplo:
public boolean equals(Object obj){
if(obj instanceof Circulo){
Circulo tmpCirculo = (Circulo) obj;
if(super.equals(tmpCirculo))
return true;
else
return false;
}else return false;
}// fin método equals
Pero después ya me di cuenta de que estabas referenciando al equals de la superclase Figura, con lo cual ¡perfecto! En ambos casos usas como criterio de igualdad dimensión principal, por tanto reutilizas código si lo agrupas den la superclase Figura
Saludos