作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
每种颜色都有自己的静态属性——一个数字。我希望能够使用一种方法更改此值。我能以某种方式使用枚举来做到这一点吗?像这样或可能不同:
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;
}
}
最佳答案
是的,您可以执行以下操作:
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
字段设为私有(private)并创建访问器和修改器方法(请参阅代码注释)。这是如何工作的,你通过一个构造函数为字段提供一个值,当你对枚举进行新的实例化时调用该构造函数。您可以根据需要向构造函数添加更多字段和参数。
关于java - 具有属性 Java 的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29319454/
我是一名优秀的程序员,十分优秀!