可以在java中将类实例化为静态吗?

Can a class be instantiated as static in java?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java: Static Class?

在Java中可以将类实例化为静态吗?

1
2
3
static class c1(){

}

能做到吗?我对这个和非静态的内存映射感到困惑。请帮助


具有类定义的static的意义不是类是否可以实例化,而是类是否必须从外部类的非静态方法中实例化。

非静态的内部类实例与创建它们的实例相关联——内部类实例中有一个指针指向创建实例(在很多方面都很有用)。静态内部类实例未绑定到创建实例。

(我在JVM的内部工作了大约10年,我仍然觉得这很困惑。)


Can the class be instantiated with the static keyword in java ? eg : static class c1(){ }

您的术语不正确。"实例化类"指创建类的实例,即创建对象。这是使用new操作完成的。您的示例实际上是关于声明类的。

尽管如此,可以将类声明为static,但这只能对嵌套类(即在另一个类中声明的类)进行。

am confused with this and the memory mapping with non static stuff's please help

我不知道你在说什么。如果你在这一点上需要更多的帮助,你需要更清楚地解释自己。


静态与内存映射没有任何关系。这意味着没有与之关联的实例。

对于static class来说,它意味着类的实例与外部类实例没有关联。


您可以使用如下所示的静态类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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();

    }
}


它打破了模式。考虑一下这一点:静态成员是每个实例都有共同点的成员,但不清楚如何将共享的概念扩展到类中?

您希望静态关键字做什么?