这是什么啊

18.java hashcode和equals

class Person extends Object{
 private String name;
 private int age;
 public Person(String name,int age){
   this.name=name;
   this.age=age;
 }
 public int hashCode(){
  return this.name.hashCode()^ new Integer(this.age).hashCode();
 }
 public boolean equals(Object obj){
  if(obj==null){
   return false;
  }
  if(this==obj){
   return true;
  }
  if(!(obj instanceof Person)){
   return false;                      
  }
  Person p=(Person)obj;
  return this.name.equals(p.name)?(this.age==p.age):false;
 }
 public String toString(){
  return this.name+":"+this.age;
 }
}
class Demo92{
 public static void main(String[] args){
  Person p1=new Person("张三",20);
  Person p2=new Person("张三",20);
  System.out.println("p1==p2的值:"+(p1==p2));//false
  System.out.println("p1.equals(p2)的值:"+p1.equals(p2));
  int hashCode1=p1.hashCode();
  int hashCode2=p2.hashCode();
  System.out.println("p1.hashCode="+hashCode1);
  System.out.println("p2.hashCode="+hashCode2);
  System.out.println("p1="+p1);
  System.out.println("p2="+p2);
 }
}
posted @ 2015-12-03 22:38  陈旭缘  阅读(81)  评论(0编辑  收藏  举报
这是什么