发布于 5年前

Java内部类和静态内部类的区别

Java的内部类根据是否使用static声明分为:静态内部类和非静态内部类,其中非静态内部类一般直接称为内部类。

内部类

内部类声明示例

public class OuterClass {
    ...
    public static class InnerClass {
        ...
    }

    public void doSomething() {
      InnerClass ic = new InnerClass();
      ...
    }
}

在外部类内部使用,如上面例子OuterClass里的doSomething()方法

InnerClass ic = new InnerClass();

如果是在非外部类调用,则首先需要实例化外部类,然后通过外部类调用内部类的构建方法:

OuterClass oc = new OuterClass();
InnerClass ic = oc.new InnerClass();

静态内部类

静态内部类的示例

public class OuterClass {
    ...
    public static class StaticInnerClass {
        ...
    }
}

构建静态内部类是不需要构建外部类的实例,只需要外部类引用静态内部类的构建方法即可:

StaticInnerClass sic = new OuterClass.StaticInnerClass();
©2020 edoou.com   京ICP备16001874号-3