【Java枚举类】Enum类的主要方法
创始人
2024-06-02 03:08:30
0

Enum类的方法如下图所示

我们来看一下几个常用的方法:

values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。

valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符 串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。

toString():返回当前枚举类对象常量的名称

=========================================================================

 举例说明:

values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。

public class SeasonTest01 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;//toString():System.out.println(summer);//System.out.println(Season1.class.getSuperclass());System.out.println("===================================");//values():Season1[] values = Season1.values();for (int i = 0; i < values.length; i++) {System.out.println(values[i]);}}
}
//使用enum关键词枚举类
enum Season1{//1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束SPRING ("春天","春暖花开"),SUMMER ("夏天","夏日炎炎"),AUTUMN ("秋天","秋高气爽"),WINTER ("冬天","冰天雪地");//2.声明Season对象的属性:private final修饰private final String seasonName;private final String seasonDesc;//3.私有化类的构造器,并给对象属性赋值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他诉求1:获取枚举类对象的属性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

运行结果如下:

 

我们再以线程的状态为例:

public class SeasonTest01 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;//toString():System.out.println(summer);//System.out.println(Season1.class.getSuperclass());System.out.println("===================================");//values():Season1[] values = Season1.values();for (int i = 0; i < values.length; i++) {System.out.println(values[i]);}System.out.println("===============================");Thread.State[] values1 = Thread.State.values();for (int i = 0; i < values1.length; i++) {System.out.println(values1[i]);}}
}
//使用enum关键词枚举类
enum Season1{//1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束SPRING ("春天","春暖花开"),SUMMER ("夏天","夏日炎炎"),AUTUMN ("秋天","秋高气爽"),WINTER ("冬天","冰天雪地");//2.声明Season对象的属性:private final修饰private final String seasonName;private final String seasonDesc;//3.私有化类的构造器,并给对象属性赋值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他诉求1:获取枚举类对象的属性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

运行结果如下图:

 valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符 串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。

public class SeasonTest01 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;//toString():System.out.println(summer);//System.out.println(Season1.class.getSuperclass());System.out.println("===================================");//values():Season1[] values = Season1.values();for (int i = 0; i < values.length; i++) {System.out.println(values[i]);}System.out.println("===============================");Thread.State[] values1 = Thread.State.values();for (int i = 0; i < values1.length; i++) {System.out.println(values1[i]);}System.out.println("=======================================");//valuesOf(String objName):返回枚举类中对象名是objName的对象Season1 winter = Season1.valueOf("WINTER");System.out.println(winter);}
}
//使用enum关键词枚举类
enum Season1{//1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束SPRING ("春天","春暖花开"),SUMMER ("夏天","夏日炎炎"),AUTUMN ("秋天","秋高气爽"),WINTER ("冬天","冰天雪地");//2.声明Season对象的属性:private final修饰private final String seasonName;private final String seasonDesc;//3.私有化类的构造器,并给对象属性赋值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他诉求1:获取枚举类对象的属性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

运行结果如下:

 假如我们将括号里的WINTER写错了写成了WINTER1.那就找不到了。运行结果如下:

 我们可以发现如果没有objName的枚举类对象,则抛异常:IllegalArgumentException

 感谢观看!!!

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...