1.通过暴力反射
2.使用内部类
3.get set方法 此处就不提及。
public class Test0030 {
public static void main(String[] args) throws Exception {
//method0010();通过内部类访问私有变量
method0020();//通过暴力反射访问私有变量
}
public static void method0020() throws Exception {
String name="com.shilu.reflect.Out";
Class<?> clazz = Class.forName(name);
Field field = clazz.getDeclaredField("age");
field.setAccessible(true);
Object obj = clazz.newInstance();
Object object = field.get(obj);
System.out.println(object);
}
public static void method0010() {
Out o=new Out();
o.method();
}
}
class Out{
private int age=54;
private void show() {
System.out.println("private show");
}
class In{
public void print() {
show();
System.out.println(age);
}
}
public void method() {
In i=new In();
i.print();
}
}