Autor Tema: Ejemplo igualdad e identidad Java Sobrescribir métodos toString equals CU00694B  (Leído 2167 veces)

Campillo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 17
    • Ver Perfil
Clase Figura

Código: [Seleccionar]
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

Código: [Seleccionar]
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

Código: [Seleccionar]
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

Código: [Seleccionar]
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));
    }
}

« Última modificación: 12 de Septiembre 2015, 16:50 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
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

Código: [Seleccionar]
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

 

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