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