回 帖 发 新 帖 刷新版面

主题:private封装

我看到了一个难以置信的private用法,让我迷糊了很久。代码如下
class PP{
    private int pnum;
    
    PP(PP p){
        this.pnum = p.pnum;
        p.pnum = 10;
    }
}
private我一只理解的意思是只能在类中访问。而上面的代码令我不解的是p.pnum这句,竟然能用对象直接访问其私有成员~太不可思议了...大家有兴趣可以试试,当然在PP类外部不能这么用,可是就算能在PP类内部用,是不是有点违背private封装的意义?为什么要这样啊?

回复列表 (共2个回复)

沙发


>>    PP(PP p){
>>        this.pnum = p.pnum;
>>        p.pnum = 10;
>>    }
首先p和this都是PP类型的吧,PP的成员函数当然能访问PP类的private成员啦。不是吗?

板凳

成员函数当然能访问private了~
可是...p是对象啊~
算了~我就接受这个现实了~

我来回复

您尚未登录,请登录后再回复。点此登录或注册