美文网首页
非静态内部类为什么持有外部类的this引用

非静态内部类为什么持有外部类的this引用

作者: 肚皮怪_Sun | 来源:发表于2018-03-23 00:22 被阅读0次

    内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通过this访问外部类的成员。
    1 编译器自动为内部类添加一个成员变量, 这个成员变量的类型和外部类的类型相同, 这个成员变量就是指向外部类对象(this)的引用;
    2 编译器自动为内部类的构造方法添加一个参数, 参数的类型是外部类的类型, 在构造方法内部使用这个参数为内部类中添加的成员变量赋值;
    3在调用内部类的构造函数初始化内部类对象时,会默认传入外部类的引用。

    相关文章

      网友评论

          本文标题:非静态内部类为什么持有外部类的this引用

          本文链接:https://www.haomeiwen.com/subject/xnftcftx.html