具有属性 Java 的枚举
Enums with attributes Java
每种颜色都有自己的静态属性——一个数字。我希望能够使用一种方法更改此值。我能以某种方式使用枚举来做到这一点吗?像这样或可能不同:
public enum Color {
RED, ORANGE, YELLOW;
}
Color.RED.setValue(x);
Color.RED.getValue();
或者我是否必须做这样的事情,其中颜色是 class?
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
字段设为私有并创建访问器和修改器方法(请参阅代码注释)。这是如何工作的,你通过一个构造函数为字段提供一个值,当你对枚举进行新的实例化时调用该构造函数。您可以根据需要向构造函数添加更多字段和参数。
你可以这样做 -
public enum Color {
RED(2), ORANGE(4), YELLOW(6);
private int value;
private Color (int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
每种颜色都有自己的静态属性——一个数字。我希望能够使用一种方法更改此值。我能以某种方式使用枚举来做到这一点吗?像这样或可能不同:
public enum Color {
RED, ORANGE, YELLOW;
}
Color.RED.setValue(x);
Color.RED.getValue();
或者我是否必须做这样的事情,其中颜色是 class?
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
字段设为私有并创建访问器和修改器方法(请参阅代码注释)。这是如何工作的,你通过一个构造函数为字段提供一个值,当你对枚举进行新的实例化时调用该构造函数。您可以根据需要向构造函数添加更多字段和参数。
你可以这样做 -
public enum Color {
RED(2), ORANGE(4), YELLOW(6);
private int value;
private Color (int value) {
this.value = value;
}
public int getValue() {
return value;
}
}