企业网站的制作方式,wordpress留言代码,微信小程序开发视频完整教程,公司网页内容enum枚举
Java 枚举是一个特殊的类#xff0c;一般表示一组常量#xff0c;比如一年的 4 个季节#xff0c;一年的 12 个月份#xff0c;一个星期的 7 天#xff0c;方向有东南西北等。
Java 枚举类使用 enum 关键字来定义#xff0c;各个常量使用逗号 , 来分割。
enu…enum枚举
Java 枚举是一个特殊的类一般表示一组常量比如一年的 4 个季节一年的 12 个月份一个星期的 7 天方向有东南西北等。
Java 枚举类使用 enum 关键字来定义各个常量使用逗号 , 来分割。
enum Color
{ RED, GREEN, BLUE; } values (), ordinal () 和 valueOf () 方法values () 返回枚举类中所有的值。ordinal ()方法可以找到每个枚举常量的索引就像数组索引一样。valueOf ()方法返回指定字符串值的枚举常量。
enum枚举类即一组固定的常量。枚举指的是列出某些有穷序列集的所有成员的程序或者是一种特定类型对象的集合。例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举可以定义一个枚举类型叫做DayOfWeek。定义方法如下
public enum DayOfWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} 一个简单的程序一年四季(比较懒惰只写了两季)注意定义enum类时只允许输出不允许输入所以没有设置set类(同时写了final关键字的variable也不能建立getter结构)。
package Enum;public class test {enum yearseason {//必须要在枚举类开头声明多个对象对象之间使用隔开SPRING(Spring, the start of the year),SUMMER(Summer, hot season of the year);//声明当前对象的实例变量使用private final修饰private final String pname;private final String pdetail;//私有化构造器private yearseason(String sname, String sdetail) {this.pname sname;this.pdetail sdetail;}public String getPname() {return pname;}public String getPdetail() {return pdetail;}public String toString(){return season name is pname;season detail is pdetail;}}public static void main(String[] args) {//yearseason WINTER new yearseason(WINTER,cold weather of the year);//enum里面没有设置set结构所以不能写入哦System.out.println(yearseason.SPRING.getPname():yearseason.SPRING.getPdetail());System.out.println(yearseason.SUMMER.toString());}
}
程序输出
Spring:the start of the year
season name is Summer;season detail is hot season of the yearProcess finished with exit code 0
values () 方法的使用
依次输出每个枚举类型时候可以这样 public static void main(String[] args) {//enum类的名称[]自定义的数组名称 enum类的名称.values()//即可返回数组中的所有值DayOfWeek [] x_totalDayOfWeek.values();//for(每个元素:数组名){XXX}增强for循环能快速输出一个数组的内容for(DayOfWeek h_each:x_total){//for(DayOfWeek h_each:DayOfWeek.values())//当然这样写也是一模一样的它相当于上面两行合并了System.out.println(today is h_each);}}返回值
today is SUNDAY
today is MONDAY
today is TUESDAY
today is WEDNESDAY
today is THURSDAY
today is FRIDAY
today is SATURDAY
ordinal ()方法的使用
(返回所寻元素数组下标返回值int)
enum DayOfWeek{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY
}
public class my_enum{public static void main(String[] args) {// 获取WEDNESDAY枚举常量的位置这里应是【3】下标位置int ord DayOfWeek.WEDNESDAY.ordinal();System.out.println(WEDNESDAY的位置ordinal: ord);// 输出: WEDNESDAY的位置ordinal: 3}
}
WEDNESDAY的位置ordinal: 3
valueOf ()方法的使用
valueOf() 方法也是 Enum 类的一个静态方法它用于将给定的字符串名称转换为对应的枚举常量。 如果字符串名称与枚举类型中某个常量的名称匹配则 valueOf() 方法返回该常量否则它将抛出一个错误 IllegalArgumentException。 enum DayOfWeek{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY
}
public class my_enum{public static void main(String[] args) {System.out.println(DayOfWeek.valueOf(TUESDAY));System.out.println();System.out.println(DayOfWeek.valueOf(666));}
}
结果
TUESDAYException in thread main java.lang.IllegalArgumentException: No enum constant exception.demo02.DayOfWeek.666at java.base/java.lang.Enum.valueOf(Enum.java:274)at exception.demo02.DayOfWeek.valueOf(my_enum.java:73)at exception.demo02.my_enum.main(my_enum.java:81)Process finished with exit code 1