反编译中内部类调用外部类成员问题
.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
反编译中内部类调用外部类成员问题相关推荐
- Python内部类,内部类调用外部类属性,方法
一 Python中内部类 典型定义: class MyOuter:age=18def __init__(self,name):self.name=nameclass MyInner:def __ini ...
- java内部类与外部类
java内部类与外部类 java内部类与外部类 一.内部类的作用 二.内部类分类 一.成员内部类 1.非静态内部类 2.静态内部类 二.局部内部类 三.匿名内部类(重要) java内部类与外部类 概念 ...
- Java内部类引用外部类中的局部变量为何必须是final问题解析
Java内部类引用外部类中的局部变量为何必须是final问题解析 今天编写一个多线程程序,发现在方法内定义内部类时,如果内部类调用了方法中的变量,那么该变量必须申明为final类型,百思不得其解,后来 ...
- java 成员变量调用其他类方法6_方法内部类中不能访问外部类的成员变量。
[单选题]下面哪一个是正确的类的声明? [多选题]关于super关键字以下说法哪些是正确的? [其它]军训专题摄影 要求上交一组(5-10张)军训照片,表现学生军训的刻苦,坚韧的意志品质和精神面貌. ...
- 内部类如何调用外部类的方法
内部类如何调用外部类的方法 直接上代码 public class test{public static void main(String[] args) {Outer.Inner p=new Oute ...
- c++接口调用外部类_Java基础:Java语法糖4之内部类
内部类 最后一个语法糖,讲讲内部类,内部类指的就是在一个类的内部再定义一个类. 内部类之所以也是语法糖,是因为它仅仅是一个编译时的概念,outer.java里面定义了一个内部类inner,一旦编译成功 ...
- java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?
对普通类(没有内部类的类)来说,内部类和外部类都与他无关:对有内部类的类来说,它们就是其内部类的外部类,外部类是个相对的说法,其实就是有内部类的类.所以,要回答这个问题,只需要讲解内部类是什么:Jav ...
- java的内部类和外部类_java内部类 和外部类的区别
下面说一说内部类(Inner Class)和静态内部类(Static Nested Class)的区别: 定义在一个类内部的类叫内部类,包含内部类的类称为外部类.内部类可以声明public.prote ...
- 内部类与外部类之间的访问
目 录 1.内部类与外部类 2.内部类的特点:内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员. 3.内部类与外部类之间的访问 在测试类中调用成员内部类中的方法: ...
最新文章
- 学python有哪些书推荐-学python看什么书好?求推荐
- 【多线程高并发】深入浅出volatile关键字
- AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)
- python 元类 type_Python 使用元类type创建类对象常见应用详解
- 心电图 python_ST段凹面型向上抬高,一定是早期复极?心电图读图第201期
- idea代码上传到gitee组织流程
- mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载
- python运维模块_Python 运维常用模块
- JavaScript学习笔记(三)——从简单模仿到创作
- shell split分析日志文件
- Nexperia | 采用Trench肖特基二极管,实现功率密度的显著提升
- 【Java 并发编程】Java 创建线程池的正确姿势: Executors 和 ThreadPoolExecutor 详解...
- INSERT 语句与 FOREIGN KEY 约束FK_comment_news冲突。该冲突发生于数据库newssystem,表dbo.news, column 'id'。 语句已终止。
- 计算机启动太慢的原因是,电脑启动慢的原因分析
- SEM竞价推广创意快速撰写的方法,智能创意制作
- 图灵的文章“Computing machinery and intelligence”译文
- IOS开发基础 · SwiftUI · StanfordCS193p Lecture1-2
- cnforum使用MasterPages实现Web窗体模板
- 本科行政管理毕业论文什么题目好写点?
- Java中对图片进行简单加密和解密