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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zsz3278440 中级黑马   /  2015-3-9 21:51  /  889 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zsz3278440 于 2015-3-10 11:22 编辑

class Person
{        
        private int age;
        Person(int age)
        {
                this.age=age;
                System.out.println(age);
        }
         public boolean compare(Person p)
        {
                return this.age==p.age;
        }

}
class  PersonDemo
{
        public static void main(String[] args)
        {
                Person p1= new Person(20);
                Person p2= new Person(25);
                boolean b =p1.compare(p2);
                System.out.println(b);
        }
}
新人求教,age用private修饰了以后,为什么在return this.age==p.age中还可以用p.age?

5 个回复

倒序浏览
这里的private修饰了Person类的成员变量age,可以由该类的实例对象进行调用,p恰是Person类的一个实例对象
回复 使用道具 举报
因为p是Person类的一个对象,而这个对象可以调用Person类的一切的,包括是private修饰的成员变量。
回复 使用道具 举报
本类中的对象可以调用本类中的所有内容,当然包括本类中私有的成员变量和成员函数
private修饰的的权限是指非本类成员无权限调用其所修饰的内容
回复 使用道具 举报
被private修饰的的成员变量,只能在本类内部调用,我感觉,可以从这理解。p.age还是在class Person类内部,外部就不可以啦。
回复 使用道具 举报
private修饰的成员可被本类对象所访问;this代表本类的对象,so可以有this.age,而p是通过参数传进来的person类对象因此也可访问其自己的age。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马