可能重复:
Java:静态类?
一个类可以在java中实例化为静态吗?
static class c1(){
}
这可以做到吗?我对此感到困惑,并且对非静态内容的内存映射感到困惑。请帮忙
类定义的意义static
不在于该类是否可以实例化,而在于该类是否必须从外部类的非静态方法中实例化。
非静态内部类实例与创建它们的实例相关联——内部类实例中有一个指向创建实例的指针(这在许多方面都很有用)。静态内部类实例与创建实例无关。
(我在 JVM 内部工作了大约 10 年,但我仍然觉得这很混乱。)
可以用 java 中的 static 关键字实例化该类吗?例如:静态类 c1(){ }
您的术语不正确。“实例化一个类”是指创建一个类的实例;即创建一个对象。这是使用new
操作完成的。您的示例实际上是关于声明一个类。
话虽如此,是的,您可以将类声明为static
,但这只能用于嵌套类;即在另一个类中声明的类。
我对此感到困惑,并且内存映射与非静态的东西的请帮助
我不知道你在这里说什么。如果您在这一点上需要更多帮助,则需要更清楚地解释自己。
static 与内存映射没有任何关系。这意味着没有与之关联的实例。
对于 astatic class
它意味着类的实例不与外部类实例相关联。
它打破了范式。考虑一下:静态成员是每个实例都具有的共同成员,但是不清楚如何将共享的这种想法扩展到一个类?
您期望 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();
}
}