java中的内部类和外壳实例

在阅读java Doc时,我得到了以下几点。

  • 内部类C是类O的直接内部类,如果O是C的立即包含在内的类,并且C的声明不会出现在静态上下文中
  • 所以,如果我写

    public class O{
        class Inner1{
            //
        }
        class Inner2{
    
        }
    }
    

    我的问题是出自这两个内在阶级哪一个是O的直接内部阶级?

    还有一些我到达那里的要点。

    2,O类是C类的第n个词汇封闭类,如果它是第n-1个词汇封闭类C的直接封闭类。

    3.类O的直接内部类C的实例i与O的实例相关联,被称为i的直接包含实例。 对象的立即封闭实例(如果有)在创建对象时确定。

    一个对象o是它本身的第零个词汇封闭实例。

    5.对象o是实例i的第n个词汇封闭实例,如果它是i的第n-1个词汇封闭实例的直接封闭实例。

    6.一个声明发生在静态上下文中的内部类I的实例没有词法封闭的实例。 但是,如果我立即在静态方法或静态初始化方法中声明,那么我确实有一个封闭块,它是词汇上包含I的声明的最里面的块语句。

    对于C的每个超类S,它本身就是一个类SO的直接内部类,有一个与I关联的实例,被称为对S的i的直接封闭实例。对象的直接封闭实例关于它的类的直接超类,如果有的话,是通过显式构造函数调用语句调用超类构造函数时确定的。

    8.当一个内部类(其声明不在静态上下文中)引用一个实例变量是一个词法封闭类的成员时,则使用相应的词法封闭实例的变量。

    请用简单的术语来解释这些事情,因为在阅读这些内容时它已经显得非常混乱


    它们都是因为OInner1Inner2的立即封闭类。

    注意“ a

    内部类C是类O 直接内部类,如果O是C的立即包含在内的类,并且C的声明不会出现在静态上下文中

    不一定是单一的。 可以有很多。

    链接地址: http://www.djcxy.com/p/91991.html

    上一篇: Inner Classes and Enclosing Instances in java?

    下一篇: Accessibility of inner class members from enclosing class