Autor Tema: EJERCICIO (CU00694B) sobreescribir metodos toString equals - java desde cero  (Leído 2399 veces)

matru

  • Sin experiencia
  • *
  • Mensajes: 41
    • Ver Perfil
Respuesta al ejercicio CU00694B del tutorial java desde cero:

Código: [Seleccionar]
public class TestFigura{

    public static void main(String []Args){

        Circulo circulo1 = new Circulo(5);
        Circulo circulo2 = new Circulo(5);
        Circulo circulo3 = new Circulo(40);

        Cuadrado cuadrado1 = new Cuadrado(12);
        Cuadrado cuadrado2 = new Cuadrado(10);
        Cuadrado cuadrado3 = new Cuadrado(12);

        System.out.println("El Area del circulo1 es: "+ circulo1.calcularArea());
        System.out.println("El Area del circulo2 es: "+ circulo2.calcularArea());
        System.out.println("El Area del circulo3 es: "+ circulo3.calcularArea()+"\n");

       System.out.println("El Area del cuadrado1 es: "+ cuadrado1.calcularArea());
        System.out.println("El Area del cuadrado2 es: "+ cuadrado2.calcularArea());
        System.out.println("El Area del cuadrado3 es: "+ cuadrado3.calcularArea()+"\n");

        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) +"\n");

     
        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) );

    }
}


Código: [Seleccionar]
public class Figura
{
   private double dimensionPrincipal;
   
   public Figura(){}
   
   public Figura(double dimensionPrincipal){this.dimensionPrincipal = dimensionPrincipal;}
   
    public void setDimensionPrincipal(double dimensionPrincipal){this.dimensionPrincipal = dimensionPrincipal;}
   
    public double getDimensionPrincipal(){return dimensionPrincipal;}
}




Código: [Seleccionar]
public class Circulo extends Figura{

   
    public Circulo(double dimensionPrincipal){
        super(dimensionPrincipal);
    }



   
    public double calcularArea(){
          double dimension = getDimensionPrincipal() * getDimensionPrincipal();
          double area = dimension *  3.1416;
        return area;
    }
   
     public boolean equals(Object obj) {
        if (obj instanceof Circulo) {
            Circulo circulo = (Circulo) obj;
            if (Double.valueOf(getDimensionPrincipal()).equals(circulo.getDimensionPrincipal())) {
                return true;
            } else {
                return false; }
               
        } else { return false; }
    } //Cierre del método equals
   


}


Código: [Seleccionar]
public class Cuadrado extends Figura{

    public Cuadrado(double dimensionPrincipal){super(dimensionPrincipal);}
   
    public double calcularArea(){
        double dimension = getDimensionPrincipal() * getDimensionPrincipal();
        double area = dimension *  3.1416;
        return area;
    }

    public boolean equals(Object obj) {
        if (obj instanceof Cuadrado) {
            Cuadrado cuadrado = (Cuadrado) obj;
            if (Double.valueOf(getDimensionPrincipal()).equals(cuadrado.getDimensionPrincipal())) {
                return true;
            } else {
                return false; }
               
        } else { return false; }
    } //Cierre del método equals

}
« Última modificación: 29 de Marzo 2016, 14:05 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola matru

En la clase Cuadrado tienes mal el cálculo del área.

    public double calcularArea(){
        double dimension = getDimensionPrincipal() * getDimensionPrincipal();
        double area = dimension *  3.1416;
        return area;
    }

En el cuadrado el área es solo el lado al cuadrado, no interviene para nada el número pi (3.1416)

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".