首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Color.red与Color.RED的区别

Color.red与Color.RED的区别
EN

Stack Overflow用户
提问于 2011-09-02 08:53:21
回答 3查看 28.2K关注 0票数 51

setXxx(Color.red)setXxx(Color.RED)定义的真正区别是什么?

我在网上找到了以下解释。都是关于命名约定的吗?

Java最初用小写定义了一些颜色常量名称,这违反了常量使用大写字母的命名规则。它们可在Java的所有版本中使用: Color.black、Color.darkGray、Color.gray、Color.lightGray、Color.white、Color.magenta、Color.red、Color.pink、Color.orange、Color.yellow、Color.green、Color.cyan、Color.blue

Java1.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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-02 08:55:24

这就是代码本身:

代码语言:javascript
复制
public final static Color red = new Color(255, 0, 0);

public final static Color RED = red;

大写字母是在JDK1.4中引入的(为了符合其命名惯例,说明常量必须是大写的)。

本质上,根本没有区别(除了字母大写)。

如果我真的想勇敢一点,Oracle可能会疯狂地删除大小写较低的常量,但这会破坏所有其他编写的JDK1.4之前编写的代码。你永远也不知道,我建议用大写字母作为常量。不过,首先必须反对(正如安德鲁·汤普森所提到的)。

票数 74
EN

Stack Overflow用户

发布于 2011-09-02 08:55:26

真的没什么区别。请参阅Color类:

代码语言:javascript
复制
/**
 * 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;
票数 21
EN

Stack Overflow用户

发布于 2016-08-16 19:31:44

Java用小写定义了一些颜色常量名称,这违反了常量使用大写字母的命名规则。这是红色的代码:

代码语言:javascript
复制
public final static Color red = new Color(255, 0, 0); 

后来,他们做了相同的颜色,但大写。

代码语言:javascript
复制
public final static Color RED = red;

所以真的没什么区别。从代码中可以看出,它们都是相同的。

代码语言:javascript
复制
public final static Color red = new Color(255, 0, 0);
public final static Color RED = red;

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7281180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档