Java hashcode 和getClass

来源:互联网 发布:dnf数据芯片要刷全图吗 编辑:程序博客网 时间:2024/06/13 08:53
 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());}}

原创粉丝点击