Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Luis Fdo Carvajal en 04 de Mayo 2017, 20:56
-
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));
}
}
-
Hola Luis Fdo Carvajal, no has seguido lo que pedía el ejercicio. El ejercicio planteaba calcular el área de un cuadrado a partir de la dimensión principal. Para un cuadrado solo te hace falta una dimensión, el lado (a lo que llamamos dimensión principal). En cambio un rectángulo no tiene una dimensión principal, sino dos dimensiones: el alto y el ancho.
En este hilo puedes ver una solución correcta al ejercicio: https://www.aprenderaprogramar.com/foros/index.php?topic=2973.0
Saludos