当我创建内部类的实例时,我使用此代码。
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass inerClass = outerClass.new InnerClass();
但是我不明白 outerClass.new InnerClass()
是如何工作的,为什么我们使用 .new
它就像 new 它的内部类一样,我明白它不是,但我不明白语法。
最佳答案
内部类是 POJO。因此,当您查看目标目录时,您会看到 2(两个)类文件。 因此,要创建内部类的实例,您可以使用new。
OuterClass outerClass = new OuterClass(); // create instance
OuterClass.InnerClass inerClass = outerClass.new InnerClass(); // innerClass has `this` to outerClass instance
这意味着 InnerClass
不是静态的(即具有 this
对 OuterClass
对象的引用)和 OuterClass 的实例
应在其之前创建。
OuterClass.InnerClass inerClass = new OuterClass.InnerClass();
这意味着 InnerClass
是静态的(即没有 this
引用 Outerlass
的对象),这意味着,这绝对是与包含 class OuterClass
和 class IninterClass
的两个独立文件相同(从 JVM 角度来看)。
关于java - 内部类实例的创建是如何进行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680866/