每种颜色都有自己的静态属性 - 数字。我希望能够使用方法更改此值。我能以某种方式使用枚举吗?像这样或者可能不同:
public enum Color {
RED, ORANGE, YELLOW;
}
Color.RED.setValue(x);
Color.RED.getValue();
或者我必须做这样的事情,其中颜色是一个类?
public Red extends Color {
private static int x;
public int getRedValue(){
return x;
}
public void setRedValue(int x){
this.x = x;
}
}
答案 0 :(得分:5)
是的,您可以执行以下操作:
enum Colour{
RED(1), BLUE(2);
public int value;
Colour(int valueArg){
value = valueArg;
}
/*public setValue(int a){
value = a;
}
public getValue(){
return value;
}*/
}
public class Test{
static Colour colour = Colour.BLUE;
public static void main(String[] args){
colour.value = 3;
//colour.setValue(3);
}
}
您可以使用您想要的任何变量类型执行此操作。
这里,Colour
枚举的每个实例都有一个相关的整数值。 (可选)将value
字段设为私有,并创建accessor和mutator方法(请参阅代码注释)。这是如何工作的,你通过在创建枚举的新实例时调用的构造函数为字段提供值。您可以根据需要向构造函数添加更多字段和参数。
答案 1 :(得分:2)
你可以做类似的事情 -
public enum Color {
RED(2), ORANGE(4), YELLOW(6);
private int value;
private Color (int value) {
this.value = value;
}
public int getValue() {
return value;
}
}