2012-11-04 53 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

相關問題