2011-03-08 72 views
0

我们无法从在类外部创建的对象访问类的私有变量,但可以在类内自己创建相同对象时访问它。为什么??私人会员的访问权限

class Program private int i { private int i;

public void method1() 
{    
    Program p = new Program(); 
    p.i = 5;  // OK when accessed within the class 
} 

}

类AnotherClass {

void method2() 
{ 
    Program p = new Program(); 
    p.i = 5; //error because private variables cannot be accessed with an object which is created out side the class 
} 

}

+3

为什么你要问[同样的问题(http://stackoverflow.com/questions/5228825/can-we-access-a-private-variable-using-an-object)再次?以前发布的答案的六个答案有什么不对? – BoltClock 2011-03-08 08:38:17

+0

@BoltClock:起初我会说“很好的接受!”但后来我注意到你自己编辑了最后一个,所以很明显你会认识到dup。 :)不管怎么说,不错! – Mehrdad 2011-03-08 08:41:31

+0

@Mehrdad:恩,谢谢你:P – BoltClock 2011-03-08 08:41:56

回答

0

这是一个设计考虑OO的允许类只会暴露他们希望重新使用的功能由其他类(作为公共/受保护的方法),并保持课堂内部的某些功能,而不能重复使用。