Java Object类 重写equals方法,根据姓名判断两个是否是同一个人

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属性”

明白了,谢谢