Java 如何在枚举或类中存储自定义RGB值
我正在尝试为我正在制作的一个简单游戏存储自定义颜色 颜色(RGB)示例: (52、73、94) (44、62、80) 我已尝试创建一个枚举,该枚举将按如下方式存储它们:Java 如何在枚举或类中存储自定义RGB值,java,graphics,Java,Graphics,我正在尝试为我正在制作的一个简单游戏存储自定义颜色 颜色(RGB)示例: (52、73、94) (44、62、80) 我已尝试创建一个枚举,该枚举将按如下方式存储它们: public enum Colours { WET_ASPHALT(52, 73, 94), MIDNIGHT_BLUE(44, 62, 80); } 虽然我甚至不确定我是否做对了。我试着搜索了一下,发现了: public enum Colours { WET_ASPHALT(52, 73, 94), MIDNIGH
public enum Colours {
WET_ASPHALT(52, 73, 94), MIDNIGHT_BLUE(44, 62, 80);
}
虽然我甚至不确定我是否做对了。我试着搜索了一下,发现了:
public enum Colours {
WET_ASPHALT(52, 73, 94), MIDNIGHT_BLUE(44, 62, 80);
private final int r, g, b;
private final String rgb;
private Colours(final int r, final int g, final int b) {
this.r = r;
this.g = g;
this.b = b;
this.rgb = r + ", " + g + ", " + b;
}
public String getRGB() {
return rgb;
}
// You can add methods like this too
public int getRed() {
return r;
}
public int getGreen() {
return g;
}
public int getBlue() {
return b;
}
}
虽然我不明白使用String
的意义,但我尝试了Color
,因为我使用的是g2d.setColor()代码>对我来说是有意义的,但那也不起作用
我可以简单地创建一个colors
类,并使每个颜色都是静态的
,但我被告知要远离静态变量
我也可以这样做,但我只是没有正确地访问存储的颜色。使用java.awt.Color
(或任何数量的颜色类)和静态最终
?@MadProgrammer我过去使用过java.awt.Color
,我只是做了一个简单的静态最终颜色
,但是不使用static不是很合适吗?static final
是创建常量的主要方法,static
将允许人们更改它,这不是您想要做的。您也可以创建一个Color
的enum
,而不是存储RGB,或者创建一个返回Color
(而不是String
)的方法,但这一切都取决于您的需要使用常量没有什么错(static final
)如果您需要它们作为常量,并且没有错误,那么在需要时只需使用static
。不要让事情变得比需要的更复杂。。。枚举的目的只是限制允许的值。你真的需要它吗?好的,我将用静态期末考试制作一个colors
类。谢谢你的帮助。我想我是想得太多了。使用java.awt.Color
(或任何数量的颜色类)和static final
,有什么问题吗?@MadProgrammer好吧,我过去用过java.awt.Color
,我只是做了一个简单的static final Color
,但是不使用static不是很合适吗?static final
是创建常量的主要方法,static
将允许人们更改它,这不是您想要做的。您也可以创建一个Color
的enum
,而不是存储RGB,或者创建一个返回Color
(而不是String
)的方法,但这一切都取决于您的需要使用常量没有什么错(static final
)如果您需要它们作为常量,并且没有错误,那么在需要时只需使用static
。不要让事情变得比需要的更复杂。。。枚举的目的只是限制允许的值。你真的需要它吗?好的,我将用静态期末考试制作一个colors
类。谢谢你的帮助。我以为我想得太多了,我想是的。