java反编译,内部类调用外部类成员总结
2013-05-07 22:01
106 查看
转载:
java反编译,内部类调用外部类成员总结
很简单的一个测试类如下:源码: 编译生成的Class文件:
public class testOuter {
private int a;
private int b;
private void fun() {
a += 1;
}
class testInner {
int x = 0;
testInner() {
b = 1;
a = 0;
fun();
}
}
class testOuter$testInner {
int x = 0;
testOuter$testInner(testOuter paramtestOuter) {
testOuter.access$002(paramtestOuter, 1);
testOuter.access$102(paramtestOuter, 0);
testOuter.access$200(paramtestOuter);
}
}
可以看出,为了使内部类访问外部类的私有成员,编译器生成了形似 "外部类.access$XYZ"的函数。XYZ为数字。X是按照私有成员在内部类出现的顺序递增的。YZ为02的话,标明是基本变量成员;YZ为00的话标明是对象成员或者函数。
记录一下,编译反编译看代码时理解代码!
http://www.retrologic.com/innerclasses.doc7.html
相关文章推荐
- Java 调用C++编译的DLL总结
- 关于java 中 classname.new classname2();的写法 其实是外部类静态成员对内部类的访问
- java 内部类和外部类互相访问各自的私有成员
- Java调用内部类成员函数的一个方法
- java中加载及方法、内部类与成员的调用关系
- JNI学习总结之:java调用native函数以及native函数回调java类成员方法
- JAVA中内部类访问外部类成员
- 反编译中内部类调用外部类成员问题
- java基础学习总结—— java外部类与内部类的关系
- 关于java成员内部类(普通内部类)在main方法中调用
- Axis2学习总结(2)-----通过wsdl2java工具调用第三方服务
- Java -- 内部类, 成员内部类,局部内部类,匿名内部类,闭包和回调, 枚举类
- 成员内部类局部内部类静态内部类匿名内部类总结
- java本地调用cmd,shell命令,远程调用Linux执行命令方法总结
- 黑马程序员_java面向对象总结【4】(内部类、异常处理、Package)
- Java 调用存储过程总结
- Java调用MATLAB常见问题总结
- Java【多线程知识总结(3)】调用join()合并线程
- Java的编译机制小总结
- Java知识总结-内部类