gpt4 book ai didi

java - java中的内部类和封闭实例?

转载 作者:行者123 更新时间:2023-12-01 18:16:39 27 4
gpt4 key购买 nike

在阅读 java Doc 时,我得到了以下内容。

  1. 如果 O 是 C 的直接词法封闭类并且 C 的声明未出现在静态上下文中,则内部类 C 是类 O 的直接内部类

所以如果我写

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

}
}

我的问题是在这两个内部类中,哪一个是 O 的直接内部类?

我也得到了一些观点。

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

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

4. 对象 o 是其自身的第零个词法封闭实例。

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

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

7. 对于 C 的每个父类(super class) S(它本身就是类 SO 的直接内部类),有一个与 i 关联的 SO 实例,称为 i 相对于 S 的直接封闭实例。对象相对于其类的直接父类(super class)(如果有)的属性是在通过显式构造函数调用语句调用父类(super class)构造函数时确定的。

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

请用简单的术语向我解释这些事情,因为在阅读这些内容时它已经看起来很困惑

最佳答案

它们都是因为 OInner1Inner2 的直接词法封闭类。

注意“a

An inner class C is a direct inner class of a class O if O is the immediately lexically enclosing class of C and the declaration of C does not occur in a static context

不一定只有一个。可以有很多。

关于java - java中的内部类和封闭实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29126158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com