私はこれが何を意味するのか理解するトラブルを抱えている、それがコード化された方法クラスの概念
Foo number = Foo.NUMBER;
と同様に、Fooのは静的なものを持つクラスですか?
(これは、それは「あなたがこのようなソリューションを構築することがあります」と述べ割り当てに投稿されました)
私はこれが何を意味するのか理解するトラブルを抱えている、それがコード化された方法クラスの概念
Foo number = Foo.NUMBER;
と同様に、Fooのは静的なものを持つクラスですか?
(これは、それは「あなたがこのようなソリューションを構築することがあります」と述べ割り当てに投稿されました)
NUMBER
はFooのオブジェクトを返すFoo
クラスのstatic
(およびfinal
)メンバーです。 java.awt.Colorクラスを見てください。
はい、あなたの言うとおりです。 Fooはクラスまたはプリミティブ型でなければならず、クラスFooにはNUMBERという静的変数が必要です。この変数は一般にアクセス可能です。ここで
class Foo {
public static final Foo NUMBER = new Foo();
}
//later...
Foo number = Foo.NUMBER;
class Foo {
public static Foo NUMBER = new Foo(); //might be final too...
public Foo {
// init Foo instance
}
}
あなたが投稿したコードの行をコンパイルすることができますクラス定義の一例です。 Foo
は、NUMBERという名前で識別されるタイプFoo
の静的メンバーを持つクラスです。
@Hovercraftはコメントで指摘したように、それはこの構文は(おそらく?)列挙型を参照することができることは注目に値します:おそらく
public enum Foo { NUMBER }
Foo number = Foo.NUMBER;
のように、。それは私の列挙型のコードのように見えます。 –
@Hovercraft Full of Eels、+1そして、enumはデフォルトで静的です。 :D – mre
@mre:確かに彼らは!価値のない+1のバックアチャ! :D –