2011-11-23 49 views

回答

0

所有頂級類都默認是靜態的。

對於那些對靜態和編譯器錯誤的定義過於迷戀的人。

類本身是一個具有應用程序範圍的對象。所以它是隱式靜態的。

+0

我在某處讀到只有內部類可以是靜態的。但是你的陳述與此相矛盾。 – aj983

+1

更確切地說,修飾符static是沒有意義的 - 只有內部類纔有區別,它們是否將「隱藏」引用返回到封閉類的實例。因此,這是毫無意義的,不被支持。 – StaxMan

+0

這取決於你的意思是靜態的。如果你說這意味着「獨立於實例」,那麼,從技術上講,所有頂級類都是靜態的。但是隻有內部類可以被聲明爲靜態,因爲這是唯一的含糊之處。 – Kevin

5

編號static僅適用於嵌套類,並告知嵌套類的實例不需要實例化周圍類的實例。因此,適用於頂級課程是沒有意義的。

+1

從技術上講,內部類是一個嵌套類,它是_not_聲明爲靜態的。 (請參閱[Java語言規範第8.1.3節](http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.3)。)所以靜態不適用於內部類根據定義。儘管如此,這個答案的意義是正確的。 –

+0

但是很多都沒有意義[在Java中]。我真的不會感到驚訝,發現它只是被忽略:) – 2011-11-23 01:15:05

+0

@Ted謝謝,我已經修復了條款。 – Artefacto

3

不可以,頂層類不能聲明爲靜態;見JLS Section 8.1.1

並非所有修飾符都適用於各種類聲明的...... 訪問修飾符靜態僅適用於成員類 ...

0

Java中的頂層類不能定義爲靜態。

閱讀this