如何从方法中设置枚举属性的值?

时间:2015-12-15 08:26:06

标签: java enums

我有一个枚举,它包含一个属性(在我的情况下为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

2 个答案:

答案 0 :(得分:5)

你永远不会打电话给setAge。您可以使用构造函数:

enum Gender {
    MALE (28),
    FEMALE (28);

    int age;

    Gender(int genderAge) {
        this.age = genderAge;
    }

    public int getAge() {
        return age;
    }
}

答案 1 :(得分:1)

尝试设置MaleFemale年龄,如下所示:

   public static void main(String[] args) {
    Gender.MALE.setAge();
    Gender.FEMALE.setAge();
System.out.println(Gender.MALE.getAge());
System.out.println(Gender.FEMALE.getAge());

}