2013-02-17 130 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