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);
}
}