2011-09-02 38 views
41

setXxx(Color.red)setXxx(Color.RED)の定義の実際の違いは何ですか?Color.redとColor.REDの相違

私はウェブ上で以下の説明を見つけました。命名規則に関するすべてですか?

Javaは元々、小文字でいくつかの色定数名を定義しましたが、これは定数に大文字を使用するという命名規則に違反していました。 Color.black、Color.darkGray、Color.gray、Color.lightGray、Color.white、Color.magenta、Color.red、Color.pink、Color.orange、Color.yellow、ColorのすべてのJavaバージョンで使用できます。 .green、Color.cyan、Color.blue

Java 1.4では、Color.BLACK、Color.DARK_GRAY、Color.GRAY、Color.LIGHT_GRAY、Color.WHITE、Color.MAGENTA、Colorの適切な大文字名が追加されました。 RED、Color.PINK、Color.ORANGE、Color.YELLOW、Color.GREEN、Color.CYAN、Color.BLUE

+1

定数のコーディング規則は、UPPER_CASEです。大文字を使用すると、その定数が示されます。 –

+8

'RED'は' red'より少なくとも3倍赤いです。そして多くの怒り。 – arserbin3

+2

定数のコーディング規則はUPPER_CASEですが、REDは実際には定数ではないことに注意してください。これはプリミティブでも列挙でもないため、Colorです。私は、コードについて話すときに人々が使う定数の定義は、JLSに従う定数の定義と矛盾していると思います。 – Trejkaz

答えて

60

コード自体があります:

public final static Color red = new Color(255, 0, 0); 

public final static Color RED = red; 

上位CA JDK1.4では、その名前付け規約に準拠するために、の定数はを大文字にする必要があります。

本質的に、違いはありません(レターケーシングを除く)。


私は本当に勇敢になりたい場合は、Oracleは野生行くと小文字に変換され、定数を削除したが、その後、それは事前にJDK 1.4書かれている他のすべてのコードを壊す可能性があります。あなたは決して知らない、私は定数の大文字に固執することをお勧めします。それは最初に廃止されなければなりません(Andrew Thompsonが言及したように)。

+9

Sunは、小文字の同等のものが一般的なJavaのJava命名規則と一致しないことを認めるのにそれほど時間がかかりました(1.4)。 –

21

実際には違いはありません。 Colorクラスを参照してください:

/** 
* The color red. In the default sRGB space. 
*/ 
public final static Color red  = new Color(255, 0, 0); 

/** 
* The color red. In the default sRGB space. 
* @since 1.4 
*/ 
public final static Color RED = red; 
1

Javaは、定数のために、大文字を使用しての命名規則に違反し、小文字でいくつかの色定数名を、定義されました。 赤色用HERESにコード:

public final static Color red = new Color(255, 0, 0); 

その後、彼らは同じ色をしたが、大文字で上。

public final static Color RED = red; 

実際には違いはありません。コードで分かるように、それらはすべて同じです。

public final static Color red = new Color(255, 0, 0); 
public final static Color RED = red; 

これは役に立ちます。

+3

新しい質問への回答を投稿してください。この質問は2011年に尋ねられ、回答も受け入れられ、回答は受け入れられたとマークされました。新しい質問を読んで、それらの人々を助けてください。乾杯。 –

関連する問題