之前面试过程中面试官问java枚举类中是否可以有set方法?对于指点我当时不是很确定,就回答了可以,之后面试官告诉说是不可以,不能对值去进行改变。
今天偶然看了一篇关于枚举的文章,其中有一个代码是给了set方法的,而且试了一下set方法可以正常用,值也确实被修修改了。
现在我就很疑惑了,到底可不可以有set方法?
下面是枚举类代码:
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
下面是set方法调用的代码:
Color.RED.setName("hongse");
System.out.println(Color.RED.getName());
下面是输出结果:
hongse
缥缈止盈
蓝山帝景
ibeautiful
繁星点点滴滴
相关分类