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