2013-02-17 2 views
0

Я шел через статью о спецификатора частного доступа, когда использовать частные и какие преимущества это делает предложения с точки зрения инкапсуляции по следующему адресу Regarding private access specifierЧто касается переменных доступа частных членов

Но есть одна вещь, которая не была ясно в этой статье, касающейся доступа к частной переменной вне класса. Хотя частные методы или переменные недоступны вне класса, к ним можно получить доступ через отражение с помощью setAccessible (true) и изменения там частной видимости.

Не могли бы вы показать мне небольшой пример, чтобы я также мог понять технически.

+4

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

ответ

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

Смежные вопросы