2012-11-04 146 views

回答

2

该类可以用java中的static关键字实例化吗?例如:static class c1(){}

您的术语不正确。 “实例化类”意味着创建类的实例;即创建对象。这是通过使用new操作完成的。你的例子实际上是宣布一类。

话虽如此,是的,你可以声明一个类为static,但这只能为一个嵌套类;即内另一类中声明的类别。

感到困惑与此并与非静态的东西的内存映射,请帮助

我没有什么线索你是在谈论这里。如果您在这一点上需要更多帮助,您需要更清楚地解释自己。

7

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

非静态内部类实例绑定到创建它们的实例 - 内部类实例中有一个指向创建实例的指针(这在许多方面都很有用)。静态内部类实例不绑定到创建实例。

(我曾在JVM的内部结构大约10年,我仍然觉得迷惑。)

+0

“静态内部类实例不绑定到创建实例。”这是我需要的! –

1

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

对于static class这意味着类的实例不与外部类实例关联。

0

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

你期望静态关键字能做什么?

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(); 

    } 
} 
+0

在上面的例子中,多级继承是实例化的......在JAVA中可能吗? –

+0

是的,它可以在Java中 – Abhishekkumar

相关问题