2013-02-17 133 views
0

我正在经历的文章关于私有访问符,何时使用私人和它在以下网址Regarding private access specifier关于访问私有成员变量

在封装方面提供什么好处,但有一两件事,这不是在本文中明确指出如何访问类外部的私有变量。虽然私有方法或变量不能在Class外部访问,但可以通过使用setAccessible(true)的反射来访问它们,并更改那里的私有可见性。

请问我可以给我一个小例子,以便我可以从技术上理解。

+4

http://stackoverflow.com/questions/1196192/how-do-i-read-a-private-field-in-java – BobTheBuilder 2013-02-17 05:51:51

回答

0

类的“私人”成员只能在程序中访问,而且也可以用自己的对象访问。即使是同一包中的继承类也无法通过组合来访问。观察代码。私有变量可以从相同的类方法访问。

class Test 
{ 
private int x = 10; 
public void display() 
{ 
     System.out.println(x); 
} 
} 
public class Demo extends Test 
{ 
public static void main(String args[]) 
{ 
    Demo d1 = new Demo(); 
    System.out.println(d1.x); // error 

    Test t1 = new Test(); 
    System.out.println(t1.x); // error , it is composition (has-a relationship)  
    t1.display();      // this works 
} 
} 

我在网上搜索了这个答案。我在way2java.com找到的主题Public methods and Private Variables