Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Campillo en 09 de Septiembre 2015, 21:51
-
Clase Figura
package Numero95;
/**
* Write a description of class Figura here.
*
* @author Campillo
* @version 09/09/2015
*/
public class Figura
{
protected double dimensionPrincipal;
public Figura(){
dimensionPrincipal = 0;
}
public Figura(double dimensionPrincipal){
this.dimensionPrincipal = dimensionPrincipal;
}
public void setDimensionPrincipal(double dimensionPrincipal){
this.dimensionPrincipal = dimensionPrincipal;
}
public double getDimensionPrincipal(){ return dimensionPrincipal; }
}
Clase Circulo
package Numero95;
import java.lang.Math;
/**
* Write a description of class Circulo here.
*
* @author Camillo
* @version 09/09/2015
*/
public class Circulo extends Figura
{
/**
* Constructor for objects of class Circulo
*/
public Circulo()
{
super();
}
public Circulo(double dimensionPrincipal){
super(dimensionPrincipal);
}
public void calcularArea(){
System.out.println( Math.PI * Math.pow(dimensionPrincipal, 2));
}
public boolean equals (Object obj) {
if (obj instanceof Circulo) {
Circulo tmpCirculo = (Circulo) obj;
if (this.dimensionPrincipal == tmpCirculo.dimensionPrincipal){ return true; }
else { return false; }
} else { return false; }
} //Cierre del método equals
}
Clase Cuadrado
package Numero95;
import java.lang.Math;
/**
* Write a description of class Cuadrado here.
*
* @author Campillo
* @version 09/09/2015
*/
public class Cuadrado extends Figura
{
public Cuadrado(){
super();
}
public Cuadrado(double dimensionPrincipal){
super(dimensionPrincipal);
}
public void calcularArea(int longitudLado){
System.out.println("El area del cuadrado es: " + Math.pow(dimensionPrincipal,2));
}
public boolean equals (Object obj) {
if (obj instanceof Cuadrado) {
Cuadrado tmpCuadrado = (Cuadrado) obj;
if (this.dimensionPrincipal == tmpCuadrado.dimensionPrincipal) { return true; }
else { return false; }
} else { return false; }
}
}
Clase TestCirculoCuadrado
package Numero95;
/**
* Write a description of class TestCirculoCuadrado here.
*
* @author Campillo
* @version 09/09/2015
*/
public class TestCirculoCuadrado
{
public static void main(String [] Args){
Cuadrado cuadrado1 = new Cuadrado(5);
Cuadrado cuadrado2 = new Cuadrado(5);
Cuadrado cuadrado3 = new Cuadrado(8);
Circulo circulo1 = new Circulo(4);
Circulo circulo2 = new Circulo(4);
Circulo circulo3 = new Circulo(6);
System.out.println("¿Son iguales cuadrado1 y cuadrado2?" + cuadrado1.equals(cuadrado2));
System.out.println("¿Son el mismo objeto cuadrado1 y cuadrado2?" + (cuadrado1 == cuadrado2));
System.out.println("¿Son iguales cuadrado1 y cuadrado3?" + cuadrado1.equals(cuadrado3));
System.out.println("¿Son iguales circulo1 y circulo2?" + circulo1.equals(circulo2));
System.out.println("¿Son el mismo objeto circulo1 y circulo2?" + (circulo1 == circulo2));
System.out.println("¿Son iguales circulo1 y circulo3?" + circulo1.equals(circulo3));
}
}
-
Hola
He revisado el ejercicio y lo veo perfecto
Las preguntas sobre igualdad e identidad están bien planteadas, todo bien.
Con vistas al aprovechamiento del polimorfismo (comentado también en otros hilos del foro) se pueden declarar todos los cuadrados y círculos empleados con un tipo estático Figura, en este caso hacer ese cambio no afecta al resultado del programa
public class TestCirculoCuadrado
{
public static void main(String [] Args){
Figura cuadrado1 = new Cuadrado(5);
Figura cuadrado2 = new Cuadrado(5);
Figura cuadrado3 = new Cuadrado(8);
Figura circulo1 = new Circulo(4);
Figura circulo2 = new Circulo(4);
Figura circulo3 = new Circulo(6);
System.out.println("¿Son iguales cuadrado1 y cuadrado2? " + cuadrado1.equals(cuadrado2));
System.out.println("¿Son el mismo objeto cuadrado1 y cuadrado2? " + (cuadrado1 == cuadrado2));
System.out.println("¿Son iguales cuadrado1 y cuadrado3? " + cuadrado1.equals(cuadrado3));
System.out.println("¿Son iguales circulo1 y circulo2? " + circulo1.equals(circulo2));
System.out.println("¿Son el mismo objeto circulo1 y circulo2? " + (circulo1 == circulo2));
System.out.println("¿Son iguales circulo1 y circulo3? " + circulo1.equals(circulo3));
}
}
Saludos