2011-03-13 50 views
1

Java中的類是否爲staticnon-staticJava中的類是靜態還是非靜態?

+5

你們要我先走嗎?,確定.....什麼? – st0le

+3

要靜態還是不要靜態 – necromancer

+2

爲什麼這會降低投票!?這個人顯然不知道Java中的類是否是靜態的。這使它成爲一個有效的技術問題。 –

回答

7

Static僅適用於塊,方法和類成員變量。雖然一個內部類可以是它的封閉類的靜態成員,但是使用類靜態沒有意義。請參閱nested classes.

+2

+1說一個(外部)類是靜態的,它具有與說它是藍色一樣的含義。 – Thomas

+3

頂級(外部)類上的'static'關鍵字實際上會產生編譯器錯誤。 –

4

類不是靜態的。只有內部類可以標記爲靜態

public class NotStatic 
{ 
    static class StaticClass 
    { 
    } 
} 

這是唯一可以是靜態的類型。

編輯:

public class NotAStaticClass 
{ 
    private static int foo; 

    public static int getFoo() 
    { return foo; } 
} 

你將如何靜態實例化這個類?答案是,你不能。您仍然必須使用新的操作員。

NotAStaticClass s1 = new NotAStaticClass(); 
0

靜態內容的概念是僅初始化一次,即在內存中只有一個副本。可以在任何時候使用同一個副本,而無需再次在內存中創建另一個副本。所以正在模板的類不是靜態的...

1

你在考慮關於靜態內部類還是靜態方法或靜態變量?

最佳做法避免在多線程信封使用靜態下列情況下

  • 避免使用靜態。
  • 避免在業務邏輯層中使用靜態方法,否則可能會失去OOP的優勢,如繼承,運行時多態。
0

類不能是靜態的。只有類中的方法,塊和變量可以是靜態的,但不能是類本身。