class Person extends Object{
private int age;
Person(int age){
this.age=age;
}
/*
一般都会覆盖此方法(equals),根据对象的特有内容,建立判断对象是否相同的依据
*/
public boolean equals(Object obj){
if(!(obj instanceof Person)){//健壮性判断 因为Object 啥都能接收 所以判断是不是Person 再比较年龄
//return false;
throw new ClassCastException("类型错误");//抛异常
}
Person p=(Person)obj;
return this.age==p.age;
}
public int hashCode(){//自定义哈希值 根据对象的特点不同 16进制
return age;
}
}
class Demo{
}
class ObjectDemo2{
public static void main(String[] args) {
Person p1=new Person(20);
Person p2=new Person(20);
//Person p3=p1;
Demo d=new Demo();
//System.out.println(p1==p2);
System.out.println(p1.equals(p2));
//System.out.println(p1==p3);
System.out.println(p1);
System.out.println(Integer.toHexString(p1.hashCode()));
Class clazz1=p1.getClass();
Class clazz2=p2.getClass();
System.out.println(clazz2==clazz1);
System.out.println(clazz1.getName());
}
}
Java hashcode 和getClass
最新推荐文章于 2020-07-15 00:43:22 发布