为什么类在 Java 中被声明为静态?

2022-09-03 04:14:30

我见过类被声明为 in,但感到困惑:
因为类用于创建对象,不同的对象具有不同的内存分配。
那么在声明类时有什么用呢?这是否意味着都是?
这有意义吗?staticjava"static"member variablesstatic


答案 1

首先,您不能使顶级静态。您只能使嵌套类成为静态的。通过使嵌套类成为静态的,你基本上是在说,你不需要嵌套类的实例就可以从你的外部类/顶级类中使用它。

例:

class Outer {

static class nestedStaticClass {

//its member variables and methods (don't nessarily need to be static)
//but cannot access members of the enclosing class
}

public void OuterMethod(){
//can access members of nestedStaticClass w/o an instance
}
}

另外要补充的是,在内部类中声明静态字段是非法的,除非它们是常量(换句话说,)。由于静态嵌套类不是内部类,因此您可以在此处声明静态成员。static final

类可以嵌套在嵌套类中吗?

一句话,是的。看看下面,嵌套的内部类和嵌套的静态类都可以在它们中有嵌套的类。但请记住,您只能在顶级类中声明静态类,在内部类中声明它是非法的。Test

public class Test {
    public class Inner1 {
        public class Inner2 {
            public class Inner3 {

            }
        }
    }
    public static class nested1 {
        public static class nested2 {
            public static class nested3 {

            }
        }   
    }
}

答案 2

嵌套类(类中的类)是唯一可以声明为静态的类。这样,就不必实例化父类即可访问嵌套类。

这个答案中有一些很好的示例代码