java中的内部类和外壳实例
在阅读java Doc时,我得到了以下几点。
所以,如果我写
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.当一个内部类(其声明不在静态上下文中)引用一个实例变量是一个词法封闭类的成员时,则使用相应的词法封闭实例的变量。
请用简单的术语来解释这些事情,因为在阅读这些内容时它已经显得非常混乱
它们都是因为O
是Inner1
和Inner2
的立即封闭类。
注意“ 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