import java.util.concurrent.SynchronousQueue;
public class Cat0609
{
private String name;
private int age;
private double weight;
public Cat0609(String name, int age, double weight)
{
this.name = name;
this.age = age;
this.weight = weight;
}
@Override
public boolean equals(Object obj)
{
if(this == obj) // 如果是同一个对象则相同
return true;
if(obj == null) // 如果有一个为null则不同
return false;
if(getClass() != obj.getClass())
return false; // 类型不同则不同
Cat0609 cat = (Cat0609)obj;
return name.equals(cat.name) && (age == cat.age)
&& (weight == cat.weight); // 比较属性
}
@Override
public int hashCode()
{
return 7 * name.hashCode() + 11 * new Integer(age).hashCode()
+ 13 * new Double(weight).hashCode();
}
public static void main(String[] args)
{
Cat0609 cat1 = new Cat0609("Java", 12, 21);
Cat0609 cat2 = new Cat0609("C++", 12, 21);
Cat0609 cat3 = new Cat0609("Java", 12, 21);
System.out.println("cat1 hashCode: " + cat1.hashCode());
System.out.println("cat2 hashCode: " + cat2.hashCode());
System.out.println("cat3 hashCode: " + cat3.hashCode());
System.out.println("cat1.equals(cat2): " + cat1.equals(cat2));
System.out.println("cat1.equals(cat3): " + cat1.equals(cat3));
}
}
Java从入门到精通Chapter7_5
最新推荐文章于 2025-08-16 17:01:55 发布