黑马程序员_Java基础加强_枚举
来源:互联网 发布:vip视频解析接口源码 编辑:程序博客网 时间:2024/05/07 04:52
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
一直都想在博客中记录自己学习的点点滴滴,但是每当开始书写的时候,就不知道从何写起(亲们,你们有类似的感觉吗?);其实Java的枚举就相当于这样的一个Java普通类,构造方法私有化,提供几个本类的静态的实例对象。
枚举的常用方法:
package com.itheima.enumstudy;import java.util.HashMap;import java.util.Map;/** * 枚举类型的基本使用 */public class EnumDemo {public static void main(String[] args) {System.out.println(MyEnum.SUN.nextDay());System.out.println(MyEnum1.SUN.nextDay());}}/** * 定义自己的枚举类型 * 星期枚举,获取下一天是星期几 */enum MyEnum{SUN(0),MON(1),TUE(2),WED(3),THU(4),FRI(5),SAT(6);private int dayNum;private static Map<Integer,MyEnum> map = new HashMap<Integer,MyEnum>();private MyEnum(int dayNum){this.dayNum = dayNum;}static{for(MyEnum en : MyEnum.values()){map.put(en.dayNum, en);}}public MyEnum nextDay(){int nextDayNum = (this.dayNum+1)%7;return map.get(nextDayNum);}}//两种方式,不知道那种方式更好呢?enum MyEnum1{SUN{@Overridepublic MyEnum1 nextDay() {return MON;}},MON{@Overridepublic MyEnum1 nextDay() {return TUE;}},TUE{@Overridepublic MyEnum1 nextDay() {return WED;}},WED{@Overridepublic MyEnum1 nextDay() {return THU;}},THU{@Overridepublic MyEnum1 nextDay() {return FRI;}},FRI{@Overridepublic MyEnum1 nextDay() {return SAT;}},SAT{@Overridepublic MyEnum1 nextDay() {return SUN;}};private MyEnum1(){}//带有抽象方法的枚举public abstract MyEnum1 nextDay();}上述两种方式都能实现获取给定星期几的下一天,但是不知道哪种方式是更好的,就我个人而言,比较喜欢第一种方式,因为代码短。。因为对于Java枚举的理解不是太深,所以先看下枚举的values()方法的底层实现,但是很遗憾,在代码中没能看到values()方法,经过查询资料好像是说values()方法是编译器自动添加的方法(你怎么看?)。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
0 0
- 黑马程序员_Java基础加强_枚举
- 黑马程序员_张孝祥_Java基础加强_枚举类
- 黑马程序员_java基础加强之枚举
- 黑马程序员_java基础加强_代理
- 黑马程序员_Java基础加强_反射
- 黑马程序员_Java基础加强_反射
- 黑马程序员_Java基础加强_内省
- 黑马程序员_Java基础加强_代理
- 黑马程序员_基础加强_枚举
- 黑马程序员_基础加强_枚举
- 黑马程序员_java基础加强_静态导入_反射_枚举_注解_内省_泛型_代理
- 黑马程序员_java基础加强6_多线程加强
- 黑马程序员_java基础加强7_多线程加强
- 黑马程序员_java基础加强8_多线程加强
- 黑马程序员_java基础加强9_多线程加强
- 黑马程序员_基础加强(2) 枚举
- 黑马程序员_基础加强(枚举)
- 【黑马程序员】java基础加强_枚举
- debian中怎样自动寻找最快的更新源以及怎样修改源
- apt-file apt-key
- PIN PUK1
- Linux cpu使用率控制
- Matlab 学习 算算术篇
- 黑马程序员_Java基础加强_枚举
- 浅析HBase架构和系统结构介绍(一)
- 如何用CSS让按钮居中显示
- Problem complexity and method efficiency in optimization
- Oracle VM VirtualBox启动新建虚拟机弹错--不能为虚拟机xxxx电脑 打开一个新任务 解决方法;
- Understanding Java RMI Internals(http://www.developer.com/java/other/article.php/3455311/Understand)
- codeblocks按c99标准编译c文件的设置
- NSDate的使用
- 浅析HBase架构和系统结构介绍(二)