An enumeration is a collection of named integer constants, used to declare a set of constants with identifiers. Enumerations are very common in daily life. For example, a person's gender can only be "male" or "female", a week can only be one of the seven days, etc. Like this, when a variable has several fixed possible values, it can be defined as an enumeration type.
The Java enumeration class is defined using the enum keyword, each constant is separated by a comma, and a semicolon is used at the end to end
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 }
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } public class SeasonEnum { public static void main(String[] args) { System.out.println("请输入季节"+"\n"+"1、春天"+"\n"+"2、夏天"+"\n"+"3、秋天"+"\n"+"4、冬天"); Scanner scan =new Scanner(System.in); int seasons= scan.nextInt(); change(seasons); } private static void change(int seasons) { Season season=Season.spring; switch (seasons){ case 1: season=Season.spring; break; case 2: season=Season.summer; break; case 3: season=Season.autumn; break; case 4: season=Season.winter; break; } System.out.println(season); } }
The enumeration class defined by enum inherits the java.lang.Enum class by default and implements both java.lang.Serializable and java.lang.Comparable interface.
values(), ordinal() and valueOf() methods are located in the java.lang.Enum class:
values() returns all values in the enumeration class .
The ordinal() method can find the index of each enumeration constant, just like an array index.
The valueOf() method returns the enumeration constant of the specified string value.
values( ) method
You can return all members of the enumeration in the form of an array, or you can get it through this method A member of an enumeration type.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 迭代季节 for (Season season : Season.values()) { System.out.println(season); } } }
Result:
ordinal() method
You can get the index position of a member in the enumeration. The following example creates an enumeration type Signal containing 3 members, and then calls the ordinal() method to output the members and their corresponding index positions.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 迭代季节 for (Season season : Season.values()) { // ordinal可以找到每个枚举常量的索引,就像数组索引一样。 System.out.println(season+" 索引为 "+season.ordinal()); } } }
Result:
valueOf() method returns the specified string value Enum constants
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Season.valueOf("summer")); // System.out.println(Season.valueOf("summ")); } }
Result
Enumerations can use their own variables, methods and Constructor, the constructor can only use private access modifier, so it cannot be called externally.
Enumerations can contain both concrete methods and abstract methods. If an enumeration class has an abstract method, every instance of the enumeration class must implement it.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 // 构造方法 private Season(){ System.out.println("Constructor called for :" +this.toString()); } public void SeasonInfo(){ System.out.println("spring"); } } } public class SeasonEnum { public static void main(String[] args) { Season season=Season.spring; season.SeasonInfo(); } }
The above is the detailed content of How to use enumerations in Java. For more information, please follow other related articles on the PHP Chinese website!