Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Java enum(枚举)的使用 PDF 下载


分享到:
时间:2020-12-23 09:16来源:http://www.java1234.com 作者:转载  侵权举报
Java enum(枚举)的使用 PDF 下载
失效链接处理
Java enum(枚举)的使用  PDF 下载


本站整理下载:
提取码:j2ff 
 
 
相关截图:
 
主要内容:



在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中,在上面的这种情况下,enum能派 上用场了。枚举类型的用途不仅如此,具体可用场景可看下面的介绍 1、常量 以前我们定义一个常量通常都是使用 public static final …… 定义的,如下面: public static final CONSTANT_STR = "TEST"; 或者使用接口定义的变量,因为接口定义的变量默认都是public static final,如下: /** * 星期的常量接口 */public interface IWeekConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu"; String FRI = "Fri"; String SAT = "Sat"; String SUN = "Sun"; }有了枚举我们可以使用下面的方式: public enum WeekEnum { MON, TUE, WED, THU, FRI, SAT, SUN; }解释:创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个 抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都 将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数 设置表示了此设置被创建的顺序。 上面那段代码声明的enum对象实际上调用了7次Enum(String name, int ordinal) 这个构造函数。(name 是常量,上面 是MON,TUE等,ordinal是被创建顺序) new Enum<EnumTest>("MON",0); new Enum<EnumTest>("TUE",1); new Enum<EnumTest>("WED",2); 。。。。。。 2、switch 当我们用switch时,一般都是使用int和char,但其实枚举也可以用在switch中,而且可能使用枚举,可以让我们的代码的 可读性更强。下面是枚举使用enum的例子 enum Color{ GREEN, YELLOW, RED }public class TrafficLight { Color color = Color.RED; public void change() { switch (color) { case RED: System.out.println("红色"); break; case YELLOW: System.out.println("黄色"); break; case GREEN: System.out.println("绿色"); break; }}}3、向枚举中添加新方法 + 遍历 我们使用常量的时候,我们使用接口的时候是可以有值与之对应的,如上面IWeekConstants 接口的MON的值是Mon,但 枚举好像没能标示出这种意义。下面我们讨论该方式的实现和枚举类型的遍历 枚举类型提供了构造函数,我们可以通过构造函数和覆写toString方法来实现。实现代码如下: package com.zcr.test; enum ActionTypeEnum{ //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错 //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错 下载(1,"xiazai"),访问(2,"fangwen"); int index;
String name; private ActionTypeEnum(int index,String name){ this.index = index; this.name = name; }public int getIndex() {return index; }public void setIndex(int index) {this.index = index; }public String getName() {return name; }public void setName(String name) {this.name = name; }}public class EnumTest {public static void main(String[] args) {ActionTypeEnum[] actionTypeEnums = ActionTypeEnum.values(); for(ActionTypeEnum actionTypeEnum : actionTypeEnums){ System.out.println("name=" + actionTypeEnum.getName()); System.out.println("index= " + actionTypeEnum.getIndex()); System.out.println("oridary=" + actionTypeEnum.ordinal()); System.out.println("this = " + actionTypeEnum); System.out.println("下载值:" + actionTypeEnum.valueOf("下载")); System.out.println("name()方法= " + actionTypeEnum.name()); System.out.println("————–叫我分割线——————"); }}} 运行结果: name=xiazai index= 1 oridary=0 this = 下载 下载值:下载 name()方法= 下载 ————–叫我分割线—————— name=fangwen index= 2 oridary=1 this = 访问 下载值:下载 name()方法= 访问 ————–叫我分割线—————— 4、总结 可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字 继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承),但可以继承接口。


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐