Autor Tema: Java definir superclase Figura heredan clases Circulo y Cuadrado CU00694B  (Leído 3960 veces)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
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.

Código: [Seleccionar]
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;}

}

Código: [Seleccionar]
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;
    }

}

Código: [Seleccionar]
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;
       
 
    }
 
}

Código: [Seleccionar]
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));
}

}
« Última modificación: 18 de Junio 2017, 12:46 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".