gpt4 book ai didi

java - 外部类、内部类以及静态方法

转载 作者:行者123 更新时间:2023-12-01 06:50:23 25 4
gpt4 key购买 nike

我知道内部类是非静态的,外部类中的静态方法无法引用它。

我有这段代码,它不起作用,我明白为什么它不起作用。

class OuterClass {
class InnerClass{}
public static void outherMethod() {
InnerClass i = new InnerClass();
}
}

但是我有其他代码,它确实有效,但我不明白为什么它与第一个代码不同。为什么它有效?

class OuterClass {
class InnerClass{}
public static void outherMethod() {
InnerClass i = new OuterClass.new InnerClass();
}
}

提前致谢!

编辑:它不重复,因为它不是同一个问题。我不是在问静态嵌套类,我是在问静态方法和内部类

最佳答案

内部类始终需要封闭类的实例才能实例化。

OuterClass 的静态方法没有 OuterClass 的实例,因此如果不提供 InnerClass 的实例,则无法创建 InnerClass 的实例一个封闭实例(OuterClass)。

InnerClass i = new InnerClass();

只能在OuterClass的实例方法中工作。

InnerClass i = new OuterClass().new InnerClass();

在静态方法中工作,因为您正在创建 OuterClass 的实例并将其用作 InnerClass 实例的封闭实例。

关于java - 外部类、内部类以及静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788408/

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