• ベストアンサー

「Color.red」の文法について

 java初心者です、宜しくお願いします。  「setBackground( Color.red ) ;」、「setBackground( Color.RED ) ;」と書いてもエラーは出ません。  「Color.RED」は「ColorクラスのREDというフィールド」という内容だと思うのですが、 「Color.red」の 「red」の構文はどのような文法になっているのでしょうか。  何故小文字でもエラーにならないのでしょうか、小文字でも「フィールド」としてエラーではないの でしょうか。  宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

迷ったら、まずはマニュアルを読んでみましょう Color.RED http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#RED Color.red http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#red どちらも public static final Color で、文法的には同じものです。 エラーにならないのは、両方定義されているから。 大文字小文字を区別していない、とかでは無いことは、例えば次の例ではっきりします。 Color.DARK_GRAY http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#DARK_GRAY Color.darkGray http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#darkGray これらは、 dark_grayやDARKGRAYでは未定義でエラーになります。

dikon_007
質問者

お礼

kmeeさん、有難うございました。

その他の回答 (1)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

大文字も小文字も両方Colorクラスのstaticフィールドとして定義されています。どちらでも同じ色を表します。 歴史的には大文字のほうが後から追加されたものです。定数であることを分かりやすくするために大文字にしたんじゃないでしょうか。

関連するQ&A