Ejercicio CU00694B del curso de programación Java desde cero
Muy a pesar que el ejercicio dice la clase figura debe tener al menos el campo dimensionPrincipal, en la vida real no se calculan únicamente cuadrados, si no tan bien rectángulos y esto lo traté de considerar en el código adjunto, sólo que no me explico porque no me funciona para calcular el área del cuadrado.
package figura;
/**
*
* @author ITCO1724
*/
public class Figura {
int dimencionPrincipal;
//Constructor
public Figura(){dimencionPrincipal = 0;}
//Constructor sobrecargado
public Figura(int dimensionPrincipal){this.dimencionPrincipal = dimencionPrincipal;}
//Getters and Setters
public double getDimensionPrincipal() {return dimencionPrincipal;}
public void setDimensionPrincipal(int dimencionPrincipal) {this.dimencionPrincipal = dimencionPrincipal;}
}
package figura;
/**
*
* @author ITCO1724
*/
public class Circulo extends Figura{
private double r; // variables para la coordenada en x,y,r (radio)
private static final double PI =3.1416;
//private int areaCirculo;
public Circulo(double r) { // método para construir un objeto con valores double
this.r = r;
}
public double Perimetro () { return 2.0 * PI * r;} // método que te dá la longitud del circulo
public double CalcularArea() { return (PI * r * r);} // método calcula el area del circulo
public int getareaCirculo() {return (int) (PI * r * r);}
// método que te dá el valor del área del circulo
public boolean equals(Object obj) {
if (obj instanceof Circulo) {
Circulo circulo = (Circulo) obj;
if (super.getDimensionPrincipal() == (circulo.getDimensionPrincipal())) {
return true;}
else {return false;}
}
return false;
}
public String toString (){String mensaje = "El area del Circulo : "+ CalcularArea();
return mensaje;
}
}
package figura;
/**
*
* @author ITCO1724
*/
public class Cuadrado extends Figura {
private final int ancho;
private final int alto;
private int areaCuadrado;
public Cuadrado(int ancho, int alto){
this.ancho = 0;
this.alto = 0;
this.areaCuadrado = areaCuadrado;
}
public int CalcularArea(){
areaCuadrado = (ancho*alto);
System.out.println("area "+ (ancho*alto));
return areaCuadrado;
}
public int getareaCuadrado() {return areaCuadrado;}
public boolean equals(Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado cuadrado = (Cuadrado) obj;
if (super.getDimensionPrincipal() == (cuadrado.getDimensionPrincipal())) {
return true;}
else {
return false;}
}
return false;
}
public String toString (){String mensaje = "El area del Cuadrado : "+ CalcularArea();
return mensaje;
}
}
package figura;
/**
*
* @author ITCO1724
*/
public class TestHerencia5 {
public static void main(String[] args) {
Cuadrado cuadrado1 = new Cuadrado(2,2);
System.out.println(cuadrado1.toString());
Cuadrado cuadrado2 = new Cuadrado(2,2);
System.out.println(cuadrado2.toString());
Cuadrado cuadrado3 = new Cuadrado(2,2);
System.out.println(cuadrado3.toString());
Circulo circulo1 = new Circulo(2);
System.out.println(circulo1.toString());
Circulo circulo2 = new Circulo(2);
System.out.println(circulo2.toString());
Circulo circulo3 = new Circulo(2);
System.out.println(circulo3.toString());
System.out.println("El área del cuadrado1 es: " +cuadrado1.CalcularArea());
System.out.println("El área del cuadrado2 es: " +cuadrado2.CalcularArea());
System.out.println("El área del cuadrado2 es: " +cuadrado3.CalcularArea());
System.out.println("El área del círculo1 es: " +circulo1.CalcularArea());
System.out.println("El área del círculo2 es: " +circulo2.CalcularArea());
System.out.println("El área del círculo2 es: " +circulo3.CalcularArea());
System.out.println("¿Son iguales las areas del cuadrado1 y la del cuadrado2? "+cuadrado1.equals(cuadrado2.CalcularArea()));
System.out.println("¿Son iguales las areas del cuadrado1 y la del cuadrado3? "+cuadrado1.equals(cuadrado3.CalcularArea()));
System.out.println("¿Son iguales las areas del circulo1 y la del circulo2? "+circulo1.equals(circulo2));
System.out.println("¿Son iguales las areas del circulo1 y la del circulo3? "+circulo1.equals(circulo3));
}
}