static
在类定义中的意义并不在于该类是否能够被实例化,而是在于该类是否必须从外部类的非静态方法中进行实例化。
非静态内部类实例与创建它们的实例相关联 -- 内部类实例中有一个指针指向创建实例(这在很多方面都很有用)。静态内部类实例则不与创建实例相关联。
(我在 JVM 的内部工作了约 10 年,但我仍然觉得这很困惑。)
new 操作完成的。 您的示例实际上是关于声明类。
话虽如此,是的,您可以将类声明为 static,但这只能针对嵌套类进行; 即在另一个类内部声明的类。
我不知道您在这里说什么。 如果您需要更多有关此问题的帮助,则需要更清楚地解释自己。
static与内存映射没有任何关系,它表示它没有与任何实例关联。
对于静态类
来说,这意味着该类的实例不与外部类实例关联。
您可以像下面这样拥有静态类
class A
{
static class B //static inner class
{
static void dis()
{
System.out.println("this is me");
}
}
}
class four extends A.B
{
public static void main(String args[])
{
dis();
}
}
它打破了范式。考虑这个问题:静态成员是每个实例都共有的成员,但如何将这种共享的想法扩展到类呢?
你期望静态关键字做什么?