.access$ 反编译偶内部类调用外部类成员问题
很简单的一个测试类源码:
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文件:
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的话标明是对象成员或者函数。

转载于:https://blog.51cto.com/sunhongbo/1256123

反编译中内部类调用外部类成员问题相关推荐

  1. Python内部类,内部类调用外部类属性,方法

    一 Python中内部类 典型定义: class MyOuter:age=18def __init__(self,name):self.name=nameclass MyInner:def __ini ...

  2. java内部类与外部类

    java内部类与外部类 java内部类与外部类 一.内部类的作用 二.内部类分类 一.成员内部类 1.非静态内部类 2.静态内部类 二.局部内部类 三.匿名内部类(重要) java内部类与外部类 概念 ...

  3. Java内部类引用外部类中的局部变量为何必须是final问题解析

    Java内部类引用外部类中的局部变量为何必须是final问题解析 今天编写一个多线程程序,发现在方法内定义内部类时,如果内部类调用了方法中的变量,那么该变量必须申明为final类型,百思不得其解,后来 ...

  4. java 成员变量调用其他类方法6_方法内部类中不能访问外部类的成员变量。

    [单选题]下面哪一个是正确的类的声明? [多选题]关于super关键字以下说法哪些是正确的? [其它]军训专题摄影 要求上交一组(5-10张)军训照片,表现学生军训的刻苦,坚韧的意志品质和精神面貌. ...

  5. 内部类如何调用外部类的方法

    内部类如何调用外部类的方法 直接上代码 public class test{public static void main(String[] args) {Outer.Inner p=new Oute ...

  6. c++接口调用外部类_Java基础:Java语法糖4之内部类

    内部类 最后一个语法糖,讲讲内部类,内部类指的就是在一个类的内部再定义一个类. 内部类之所以也是语法糖,是因为它仅仅是一个编译时的概念,outer.java里面定义了一个内部类inner,一旦编译成功 ...

  7. java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?

    对普通类(没有内部类的类)来说,内部类和外部类都与他无关:对有内部类的类来说,它们就是其内部类的外部类,外部类是个相对的说法,其实就是有内部类的类.所以,要回答这个问题,只需要讲解内部类是什么:Jav ...

  8. java的内部类和外部类_java内部类 和外部类的区别

    下面说一说内部类(Inner Class)和静态内部类(Static Nested Class)的区别: 定义在一个类内部的类叫内部类,包含内部类的类称为外部类.内部类可以声明public.prote ...

  9. 内部类与外部类之间的访问

    目           录 1.内部类与外部类 2.内部类的特点:内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员. 3.内部类与外部类之间的访问 在测试类中调用成员内部类中的方法: ...

最新文章

  1. 学python有哪些书推荐-学python看什么书好?求推荐
  2. 【多线程高并发】深入浅出volatile关键字
  3. AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)
  4. python 元类 type_Python 使用元类type创建类对象常见应用详解
  5. 心电图 python_ST段凹面型向上抬高,一定是早期复极?心电图读图第201期
  6. idea代码上传到gitee组织流程
  7. mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载
  8. python运维模块_Python 运维常用模块
  9. JavaScript学习笔记(三)——从简单模仿到创作
  10. shell split分析日志文件
  11. Nexperia | 采用Trench肖特基二极管,实现功率密度的显著提升
  12. 【Java 并发编程】Java 创建线程池的正确姿势: Executors 和 ThreadPoolExecutor 详解...
  13. INSERT 语句与 FOREIGN KEY 约束FK_comment_news冲突。该冲突发生于数据库newssystem,表dbo.news, column 'id'。 语句已终止。
  14. 计算机启动太慢的原因是,电脑启动慢的原因分析
  15. SEM竞价推广创意快速撰写的方法,智能创意制作
  16. 图灵的文章“Computing machinery and intelligence”译文
  17. IOS开发基础 · SwiftUI · StanfordCS193p Lecture1-2
  18. cnforum使用MasterPages实现Web窗体模板
  19. 本科行政管理毕业论文什么题目好写点?
  20. Java中对图片进行简单加密和解密

热门文章

  1. DCMTK:表示基于文件系统的基本工作列表管理服务类提供程序的控制台引擎的类
  2. VTK:网格之PointInterpolator
  3. VTK:图片之ImageConvolve
  4. VTK:图表之ColorVertexLabels
  5. OpenCV XML和YAML文件的文件输入和输出
  6. Qt Creator将应用程序部署到QNX Neutrino设备
  7. C语言以递归实现归并排序Merge Sort算法(附完整源码)
  8. 使用Qt的多线程编程
  9. C++class类(I)
  10. QT的QWhatsThis类的使用