2011-03-13 8 views
1

Javaのクラスはstaticまたはnon-staticですか?クラスはJavaの `static`または` non-static`ですか?

+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つのコピーしか持たないという概念です。メモリにもう1つのコピーを作成せずに同じコピーを使用できます。したがって、クラスとなるクラスは静的ではありません。

1

静的な内部クラスまたは静的メソッドまたは静的変数について考えていますか?マルチスレッドのEnvでスタティックを使用して、次の例

  • 避けで静的を使用して

    としてベストプラクティス避けます。

  • ビジネスロジックレイヤに静的メソッドを持たないようにしてください。継承、ランタイムポリモーフィズムなどのOOPの利点が失われる可能性があります。
0

クラスを静的にすることはできません。あるクラス内のメソッド、ブロック、および変数だけが静的であることができますが、クラス自体は静的ではありません。

関連する問題