A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄盖打周瑜 中级黑马   /  2016-3-20 12:07  /  607 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Person {
        private String name;
        private int age;
        public Person() {
                super();
               
        }
        public Person(String name, int age) {
                super();
                this.name = name;
                this.age = age;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        @Override
        public String toString() {
                return "Person [name=" + name + ", age=" + age + "]";
        }
        @Override
        public boolean equals(Object obj) {
                Person  p = (Person)obj;
                return this.name.equals(p.name)&& this.age == p.age;
        }
       
       
}





上面代码重写equals方法,方法中,this代表当前对象的引用,也就是当前对象Person中的name,与p.name里面的字符串作比较.我不明白的地方就是对象的引用P中的name不是加了也private吗,怎么可以直接用p.调用.


3 个回复

倒序浏览
因为p也是Person类的对象,加了private修饰符的实例域可以被本类对象调用。
回复 使用道具 举报
因为在一个类中
回复 使用道具 举报
感谢各位大神,明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马