在阅读java Doc时,我得到了以下内容。
所以,如果我写
public class O{
class Inner1{
//
}
class Inner2{
}
}
我的问题不在这两个内部类中,哪一个是O的直接内部类?
我也有一些要点。
2.如果类是C的第n-1个词汇封闭类的直接封闭类,则类O是C类的第n个词汇封闭类。
3.类O的直接内部类C的实例i与O的实例相关联,称为i的直接封闭实例。在创建对象时确定对象的直接封闭实例(如果有)。
4.对象o是第0个词汇封闭的自身实例。
5.对象o是实例i的第n个词汇封闭实例,如果它是n-1个词汇封闭的i实例的直接封闭实例。
6.内部类I的实例,其声明发生在静态上下文中,没有词法封闭的实例。但是,如果我在静态方法或静态初始化程序中立即声明,那么我确实有一个封闭块,这是最内部的块语句,用词条方式包含I的声明。
7.对于C的每个超类S本身是类SO的直接内部类,有一个与i关联的SO实例,称为关于S的直接封闭的i实例。立即封闭的实例一个关于它的类的对象'直接超类(如果有的话)是在通过显式构造函数调用语句调用超类构造函数时确定的。
8.当内部类(其声明未在静态上下文中出现)引用作为词法封闭类的成员的实例变量时,将使用相应的词法封闭实例的变量。
请用简单的术语解释这些内容,因为在阅读这些内容时它似乎已经非常混乱了
答案 0 :(得分:4)
它们都是O
是Inner1
和Inner2
的立即词汇封闭类。
请注意“ a ”
如果O是,则内部类C是 a 类O的直接内部类 立即词汇封闭C类和C的声明 不会出现在静态上下文中
不一定是单一的。可能有很多。