Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: matru en 25 de Marzo 2016, 23:46

Título: EJERCICIO (CU00694B) sobreescribir metodos toString equals - java desde cero
Publicado por: matru en 25 de Marzo 2016, 23:46
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

}
Título: Re:EJERCICIO (CU00694B) sobreescribir metodos toString equals - java desde cero
Publicado por: Alex Rodríguez en 29 de Marzo 2016, 14:05
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