我有一个枚举,它包含一个属性(在我的情况下为age
)。我想从每个元素的方法中设置它的值。以下是我的代码..
enum Gender {
MALE {
void setAge() {
this.age = 20;
}
},
FEMALE {
void setAge() {
this.age = 30;
}
};
int age;
public int getAge() {
return age;
}
abstract void setAge();
}
public class TestingEnum {
public static void main(String[] args) {
System.out.println(Gender.MALE.getAge());
System.out.println(Gender.FEMALE.getAge());
}
}
但为什么在我的主方法中产生它们的值只显示 0 ?
答案 0 :(得分:5)
你永远不会打电话给setAge。您可以使用构造函数:
enum Gender {
MALE (28),
FEMALE (28);
int age;
Gender(int genderAge) {
this.age = genderAge;
}
public int getAge() {
return age;
}
}
答案 1 :(得分:1)
尝试设置Male
和Female
年龄,如下所示:
public static void main(String[] args) {
Gender.MALE.setAge();
Gender.FEMALE.setAge();
System.out.println(Gender.MALE.getAge());
System.out.println(Gender.FEMALE.getAge());
}