Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 04 de Junio 2016, 21:29

Título: Java sobreescritura de métodos con clases figura, cuadrado, círculo CU00694B
Publicado por: DRANXZ88 en 04 de Junio 2016, 21:29
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;
        }
    }
}
Título: Re:Ejercicios de java desde cero (CU00694B).
Publicado por: Dimitar Stefanov 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.