Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: umadara en 19 de Julio 2016, 18:33

Título: Java cómo usar herencia Sobreescribir métodos toString y equals en Java CU00694B
Publicado por: umadara en 19 de Julio 2016, 18:33
Buenas aquí otro ejercicio resuelto, el CU00694B del taller de programación en Java desde cero.

Código: [Seleccionar]
public class Test {
   
    public static void main (String[] args) {
       
       Circulo circulo1 = new Circulo(10);
       
       Circulo circulo2 = new Circulo(10);
       
       System.out.println(circulo1.equals(circulo2));
       
       Cuadrado cuadrado1 = new Cuadrado(10); 
       
       Cuadrado cuadrado2 = new Cuadrado(1);
       
       System.out.println(cuadrado1.equals(cuadrado2));
    }
}


Código: [Seleccionar]
public class Circulo extends Figura{
   
    double areaCirculo;
   
    public Circulo (double dimensionPrincipal) {
       
        super (dimensionPrincipal);
   
    }
   
     public void areaCirculo() {
       
        areaCirculo = 2 * 3.1416 *(dimensionPrincipal * dimensionPrincipal);
   
    }
   
    public double getAreaCirculo() {return areaCirculo;}
   
    public void mostrarAreaCirculo() {
       
        System.out.println ("El área del circulo es " + getAreaCirculo() + "cm2");
   
    }
   
    public boolean metodo1() {
        return true;
    }
   
    public boolean equals (Object obj) {
       
        if (obj instanceof Circulo ){
           
            Circulo tmpCirculo = (Circulo) obj;
           
            return tmpCirculo.dimensionPrincipal == this.dimensionPrincipal;
       
        }
        return false;
    }
   
}


Código: [Seleccionar]
public class Cuadrado extends Figura{
   
    double areaCuadrado;
   
    public Cuadrado (double dimensionPrincipal) {
       
        super (dimensionPrincipal);
   
    }
   
    public void areaCuadrado() {
       
        areaCuadrado = dimensionPrincipal * dimensionPrincipal;
   
    }
   
    public double getAreaCuadrado() {return areaCuadrado;}
   
    public void mostrarAreaCuadrado() {
       
        System.out.println ("El área del cuadrado es " + getAreaCuadrado() + "cm2");
   
    }
   
     public boolean equals (Object obj) {
       
        if (obj instanceof Cuadrado ){
           
            Cuadrado tmpCuadrado = (Cuadrado) obj;
           
            return tmpCuadrado.dimensionPrincipal == this.dimensionPrincipal;
       
        }
        return false;
    }
}


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

}

Sin más un saludo.
Título: Re:Java cómo usar herencia Sobreescribir métodos toString y equals en Java CU00694B
Publicado por: Alex Rodríguez en 01 de Agosto 2016, 21:05
Hola umadara en el ejercicio tendríamos a mejorar:

- La forma de nombrar algunos métodos por ejemplo no sería  public void dimensionPrincipal (double dimensionPrincipal) sino  public void setDimensionPrincipal (double dimensionPrincipal)

- La fórmula del área del círculo la tienes mal

En vez de areaCirculo = 2 * 3.1416 *(dimensionPrincipal * dimensionPrincipal);

Si la dimensión principal del círculo es el radio la fórmula sería areaCirculo = 3.1416 *(dimensionPrincipal * dimensionPrincipal);

- En lugar de 3.1416 es preferible usar Math.PI que da mayor precisión

- En la clase Cuadrado te falta el set para atributos

Saludos