Sunday, July 16, 2017

Ejercicio 9

Problema

Defina la clase carro con las siguientes variables: Cilindrada, Color, num_Puertas. Defina dos elementos idénticos de la clase carro y emplee:

  • Operador relacional ==
  • Función Object.equals(Object x)

para determinar si efectivamente son iguales. En función de las respuestas, proponga una solución o metodología para determinar la igualdad entre dos objetos idénticos definidos por el usuario.

Solución

Cuando se emplea el operador relacional (==) y la función equals implementada por defecto en java, java no es capaz de identificar la igualdad entre los dos objetos. Por ello, se recomienda re-escribir la función equals en la clase correspondiente.

Clase Carro


package certification1;

public class Carro {
    public enum Color {Rojo,Negro,Blanco};
    private final double cilindrada;
    private final int num_puertas;
    private final Color color;
    
    public Carro(Color color, double cilindrada, int num_puertas){
        this.color = color;
        this.cilindrada = cilindrada;
        this.num_puertas = num_puertas;
    }
    
    public boolean equals(Carro x){
        return (x.color == this.color && x.cilindrada == this.cilindrada && x.num_puertas == this.num_puertas);
    }
}
Clase main

package certification1;

public class Certification1 {
    
    public static void main(String[] args) {
        Carro p1 = new Carro(Carro.Color.Blanco,1600,4);
        Carro p2 = new Carro(Carro.Color.Blanco,1600,4);
        
        if(p1.equals(p2)){
            System.out.println("Iguales");
        }else{
            System.out.println("Diferentes");
        }
    }
}

No comments:

Post a Comment

Earn free bitcoin