答案 0 :(得分:8)
static
对类定义的重要性不在于类是否可以实例化,而是该类是否必须在外部类的非静态方法中实例化。
非静态内部类实例与创建它们的实例相关联 - 内部类实例中有一个指针返回到创建实例(这在很多方面都很有用)。静态内部类实例与创建实例无关。
(我在JVM的内部工作了大约10年,我仍然觉得这很令人困惑。)
答案 1 :(得分:2)
可以在java中使用static关键字对类进行实例化吗?例如:static class c1(){}
您的术语不正确。 "实例化课程"意味着创建一个类的实例;即创建对象。这是使用new
操作完成的。您的示例实际上是关于声明类。
话虽如此,是的,您可以将类声明为static
,但这只能用于嵌套类;即一个在里面声明的类。
我对此感到困惑,并且使用非静态内容进行内存映射请帮助
我不知道你在这里谈论的是什么。如果您在这一点上需要更多帮助,您需要更清楚地解释自己。
答案 2 :(得分:1)
static与内存映射没有任何关系。这意味着没有与之关联的实例。
对于static class
,它意味着该类的实例与外部类实例无关。
答案 3 :(得分:0)
打破了范式。考虑一下:静态成员是每个实例都有共同点的成员,但不清楚如何将这种共享理念扩展到一个类?
您希望static关键字能做什么?
答案 4 :(得分:0)
您可以拥有如下所示的静态类
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();
}
}