Java Object类 重写equals方法,根据姓名判断两个是否是同一个人
问题描述:
public class Test{
public static void main(String[] args)
{
Person p1 = new Person("张三", 20);
Person p2 = new Person("张三", 20);
System.out.println(p1.equals(p2));
}
}
class Person{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
//补写
}
}
答
public boolean equals(Object obj){
//补写
if(obj==null){
return false;
}
if(((Person)obj).name==null||this.name==null){
return false;
}
if(((Person)obj).name.equals(this.name)){
return true;
}
return false;
}
答
eclipse好像可以自动生成equals函数。
答
主要问题是Person类的name属性是私有的,没办法直接获取强制转换后的obj对象的name属性
答
重写的equals方法不是在Person类里面吗?跟私不私有没关系,都是自己的 ,怎么会“没办法直接获取强制转换后的obj对象的name属性”
答
明白了,谢谢