创建内部类的实例如何工作?

时间:2019-06-20 07:17:04

标签: java

当我创建内部类的实例时,我使用此代码。

OuterClass outerClass = new OuterClass();
OuterClass.InnerClass inerClass = outerClass.new InnerClass();

但是我不了解outerClass.new InnerClass()的工作原理,为什么我们像新的内部类一样使用.new,我知道不是,但是我不了解语法。

1 个答案:

答案 0 :(得分:2)

内部类是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的实例应在其之前创建。 / p>

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

这意味着InnerClass是静态的(即没有thisOuterlass的对象的引用),这意味着(从JVM的角度来看)这是绝对相同的,例如两个分别为class OuterClassclass InnterClass的文件。