只能够取特定值中的一个
使用enum关键字
而每个枚举的成员实质就是一个枚举类型的示例,他们默认都是public static final 的,可以直接通过枚举类型名直接使用它们。
强烈建议当你需要定义一组常量时(值的类型确定的时候我们就可以使用枚举类型了),使用枚举类型尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入复杂性!
所有的枚举类型隐形地继承了java.lang.Enum(枚举实质上还是类)
示例:
package com.bjsxt.enumpro; public enum Gender { 男,女; //男,女默认public static final修饰的 private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } package com.bjsxt.enumpro; public class TestGender { public static void main(String[] args) { Gender sex = Gender.女; sex.setName("张三"); System.out.println(sex.getName()); //Gender g = new Gender();//错误的,枚举不是类,既然不是类就不能有构造方法 /**枚举与String类总之见的相互转化 * 枚举 -- > String toString();方法*/ String str = sex.toString(); System.out.println(str); /**String -- > 枚举 * */ Gender g = Enum.valueOf(Gender.class, "男"); System.out.println(g); /**枚举在switch当中的使用*/ switch(g){ case 男: System.out.println("男----------------"); break; case 女: System.out.println("女----------------"); break; } /**枚举在自定义中的使用*/ Person p = new Person("marry",20,Gender.女); } } package com.bjsxt.enumpro; /**枚举在自定义中的使用*/ public class Person { private String name; // 姓名 private int age; // 年龄 private Gender gender;// 性别 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public Person(String name, int age, Gender gender) { super(); this.name = name; this.age = age; this.gender = gender; } public Person() { super(); } }