class Person
{
int age;
String name;
public Person(int age, String name)
{
this.age = age;
this.name = name;
}
public Person()
{
}
public String toString()
{
return "年龄"+ age+" 姓名:"+name;
}
public boolean equals(Object o) //重写equals来判断两个人的年龄是否相同
{
Person p =(Person)o;
return this.age==p.age;
}
//一般重写了equals方法就要重写hashCode方法
public int hashCode()
{
return this.age;
}
}
public class Object1
{
public static void main(String[] args)
{
Object o = new Object();
System.out.println(o);
System.out.println(o.toString());
Person p1 = new Person(18,"张三");
Person p2 = new Person(18,"李四");
System.out.println("p1 "+ p1);
System.out.println("p2 "+ p2);
Person p3 = new Person(18,"王麻子");
System.out.println("p1和p3是同一个年龄吗? "+p1.equals(p3));
System.out.println("p1.hashCode() = "+ p1.hashCode());
System.out.println("p2.hashCode() = "+ p2.hashCode());
}
}
运行结果:
java.lang.Object@52ed3bff
java.lang.Object@52ed3bff
p1 年龄18 姓名:张三
p2 年龄18 姓名:李四
p1和p3是同一个年龄吗? true
p1.hashCode() = 18
p2.hashCode() = 18