Autor Tema: Java sobreescritura de métodos con clases figura, cuadrado, círculo CU00694B  (Leído 2644 veces)

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Clase principal main

Código: [Seleccionar]
package ejercicioscu00694b;

public class EjerciciosCu00694b {

    public static void main(String[] args) {
        Cuadrado cuadrado1 = new Cuadrado(15);
        Cuadrado cuadrado2 = new Cuadrado(15);
        Cuadrado cuadrado3 = new Cuadrado(33);
        Cuadrado cuadrado4 = new Cuadrado(8);

        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());
        System.out.println("El area del cuadrado4 es " + cuadrado4.calcularArea());
        System.out.println("\n");
        System.out.println("¿Son el mismo objeto la cuadrado1 y al cuadrado2? " + (cuadrado1 == cuadrado2));
        System.out.println("¿Son iguales la cuadrado1 y al cuadrado2? " + cuadrado1.equals(cuadrado2));
        System.out.println("¿Son iguales la cuadrado1 y al cuadrado3? " + cuadrado1.equals(cuadrado3));
        System.out.println("¿Son iguales la cuadrado2 y al cuadrado4? " + cuadrado2.equals(cuadrado4));
        System.out.println("¿Son iguales la cuadrado3 y al cuadrado4? " + cuadrado3.equals(cuadrado4));
        System.out.println("\n");
        Circulo circulo1 = new Circulo(9);
        Circulo circulo2 = new Circulo(9);
        Circulo circulo3 = new Circulo(22);
        Circulo circulo4 = new Circulo(16);

        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());
        System.out.println("El area del circulo4 es " + circulo4.CalcularArea());
        System.out.println("\n");
        System.out.println("¿Son el mismo objeto la circulo1 y al circulo2? " + (circulo1 == circulo2));
        System.out.println("¿Son iguales la circulo1 y al circulo2? " + circulo1.equals(circulo2));
        System.out.println("¿Son iguales la circulo1 y al circulo3? " + circulo1.equals(circulo3));
        System.out.println("¿Son iguales la circulo2 y al circulo4? " + circulo2.equals(circulo4));
        System.out.println("¿Son iguales la circulo3 y al circulo4? " + circulo3.equals(circulo4));
    }

}


Super clase figura

Código: [Seleccionar]
package ejercicioscu00694b;

public class Figura {

    protected double dimensionPrincipal;

    public Figura() {
    }

    public Figura(double dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    }

    public double getDimensionPrincipal() {
        return dimensionPrincipal;
    }

    public void setDimensionPrincipal(double dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    }

}


Sub clase Cuadrado

Código: [Seleccionar]
package ejercicioscu00694b;

public class Cuadrado extends Figura {

    public Cuadrado() {
    }

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

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

    public boolean equals(Object obj) {
        if (obj instanceof Cuadrado) {
            Cuadrado tmpCuadrado = (Cuadrado) obj;
            if (Double.valueOf(getDimensionPrincipal()).equals(tmpCuadrado.getDimensionPrincipal())) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}


Sub clase circulo

Código: [Seleccionar]
package ejercicioscu00694b;

public class Circulo extends Figura {

    public Circulo() {
    }

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

    public double CalcularArea() {
        double areaCirculo;
        double dimension;
        dimension = getDimensionPrincipal();
        areaCirculo = Math.PI * Math.sqrt(dimension);
        return areaCirculo;
    }

    public boolean equals(Object obj) {
        if (obj instanceof Circulo) {
            Circulo tmpCirculo = (Circulo) obj;
            if (Double.valueOf(getDimensionPrincipal()).equals(tmpCirculo.getDimensionPrincipal())) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}
« Última modificación: 17 de Junio 2016, 15:14 por Alex Rodríguez »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:Ejercicios de java desde cero (CU00694B).
« Respuesta #1 en: 07 de Junio 2016, 11:04 »
Buenas, DRANXZ88.

Creo que has hecho un ejercicio estupendo y has entendido bien el concepto de sobreescriptura de los métodos.

Saludos :)

PD: Si no quieres utilizar la conversión de lo que devuelve el método "getDimensionPrincipal" mediante las instrucciones:

Código: [Seleccionar]
Double.valueOf(getDimensionPrincipal()

podías haber declarado dicho método como un tipo Double en la superclase "Figura" así:

Clase Figura:

Código: [Seleccionar]
public class Figura {

    protected Double dimensionPrincipal;

    public Figura() {
    }

    public Figura(Double dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    }

    public Double getDimensionPrincipal() {
        return dimensionPrincipal;
    }

    public void setDimensionPrincipal(Double dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    }

}

Y las otras dos clases así:

Clase Circulo:

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

    public Circulo() {
    }

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

    public double CalcularArea() {
        double areaCirculo;
        double dimension;
        dimension = getDimensionPrincipal();
        areaCirculo = Math.PI * Math.sqrt(dimension);
        return areaCirculo;
    }

    public boolean equals(Object obj) {
        if (obj instanceof Circulo) {
            Circulo tmpCirculo = (Circulo) obj;
            if (super.getDimensionPrincipal().equals(tmpCirculo.getDimensionPrincipal())) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}

Clase Cuadrado:

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

    public Cuadrado() {
    }

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

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

    public boolean equals(Object obj) {
        if (obj instanceof Cuadrado) {
            Cuadrado tmpCuadrado = (Cuadrado) obj;
            if (super.getDimensionPrincipal().equals(tmpCuadrado.getDimensionPrincipal())) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}

Es simplemente otra manera de hacer el ejercicio, pero quiero recalcar, has hecho el ejercicio correctamente.


 

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