Java里面static一般用来修饰成员变量或函数。
但有一种特殊用法是用static修饰内部类。普通类是不允许声明为静态的,只有内部类才可以。
被static修饰的内部类可以直接作为一个普通类来使用,而不需先实例一个外部类。
public class OuterClass {
public static class InnerClass {
InnerClass(){
System.out.println("===== 我是一个内部类'InnerClass' =====");
}
}
}
public class TestStaticClass {
public static void main(String[] args) {
// 不需要先new一个OutClass的对象
OuterClass.InnerClass inner = new OuterClass.InnerClass();
}
}
如果没有用static修饰InterClass,则只能按如下方式调用:
public class OuterClass {
public class InnerClass{
InnerClass(){
System.out.println("===== 我是一个内部类'InnerClass' =====");
}
}
}
public class TestStaticClass {
public static void main(String[] args) {
// 需要先new一个OuterClass的对象outer
// 然后通过outer.new生成内部类的对象
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
}
}