一,枚举是什么?

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 [1] 是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。
----------参考 baidu.com

讲人话,在Java里面就是个继承Object实现Comparable, Serializable接口的类。

二,使用的地方

  • 1, 常量的定义
  • 2, 可以switch
  • 3, 类似类 有set, get 构造(private EnumName(){…}), 有普通方法, 有静态
  • 4, 可以实现接口
  • 5, 接口组织枚举
  • 6, 枚举集合

三,代码实现

  • 常量与接口
public interface MyEnumInterface {void print();
}
定义常量并实现接口
public enum MyEnum implements MyEnumInterface {// 常量定义SUN, MON, TUE, WED, THT, FRI, SAT;@Overridepublic void print() {System.out.println(SUN + "...");}// 得到常量static void constant() {MyEnum sun = MyEnum.SUN;System.out.println(sun + "==>" + MyEnum.valueOf("SUN"));}// switch 与枚举使用static void swithEnum(MyEnum me) {        switch(me) {case SUN:System.out.println("sunday!");break;case MON:break;case TUE:break;case WED:break;case THT:break;case FRI:break;case SAT:break;default:break;}}}
  • 枚举类似类的用法,有构造,字段,函数,多了常量。
enum Color {// 向枚举添加方法BLUE("蓝色", 0), ORANGE("橙色", 1), YELLOW("黄色", 2);// 这个变量得用上,否则报错private String name;private int index;// 枚举里面的构造方法没得class修饰了private Color(String name, int index) {this.name = name;this.index = index;}// 遍历常量 得到颜色public static String getName(int index) {for(Color color: Color.values()) {if (index == color.getIndex()) {return color.getName();}}return null;}// set getpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}// 重写toString() 方法public String toString() {return getName() + ":" + getIndex();}}
  • 取枚举的值
 static void testColor() {String name = Color.getName(0);System.out.println(name);Color blue = Color.BLUE;// 常量 BLUESystem.out.println(blue);// 常量名称 BLUESystem.out.println(blue.name());System.out.println("重写了toString后, 返回下标枚举值 " + blue.toString());}
  • 组织枚举接口
public interface MyEnumInterface {void print();
}// 发现了一个小秘密,接口里面可以有方法体,用枚举...
interface Food {// 组织枚举接口 在接口里面实现接口的枚举enum Meat implements Food {SHEEP_MEAT, FISH_MEAT, BACON_MEAT;void eat(Meat me) {if (me.equals(SHEEP_MEAT)) {System.out.println("SHEEP_MEAT!");}}}}
  • 枚举集合
 static void testEnumList() {// 枚举集合EnumSet<MyEnum> set = EnumSet.noneOf(MyEnum.class);set.add(MyEnum.MON);set.add(MyEnum.FRI);System.out.println(set);}

Java枚举的定义,使用相关推荐

  1. java枚举类型定义_java中的枚举类型怎么定义?

    展开全部 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自62616964757a686964616fe59b9ee7ad9431333236366331己的变量, ...

  2. 什么是java枚举_什么是java枚举

    什么是java枚举? java 枚举的定义与用法 一.枚举的定义: 枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类 ...

  3. Java枚举(Enum)类型的基本介绍与原理探求

    Enum枚举类型 Enum的全写是Enumeration,这个词的翻译是列举.逐条陈述.细目.在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串.整型),这种数据类型的变量值限定在固 ...

  4. java枚举类型enum用法_java枚举类型enum用法和原理介绍【传智播客】

    Enum枚举类型 Enum的全写是Enumeration,这个词的翻译是列举.逐条陈述.细目.在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串.整型),这种数据类型的变量值限定在固 ...

  5. java枚举对象作用_浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...

  6. java 枚举定义变量_Java枚举(enum)

    Free Talk 上学期上Java课时都没有听说过枚举的概念,这次偶然在JavaGuide博客中看到了,就想写一些枚举相关知识.本篇文章会较为深入地讲解一下枚举的强大功能. 写这边博客的时候,又发现 ...

  7. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  8. Java枚举类使用方式

    Java枚举类使用方式 单枚举定义 : /*** * @title: 单枚举定义* @author: wll* @since: 2021-1-27 14:47:54*/ public enum Jud ...

  9. 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀

    零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...

最新文章

  1. Android编程:解决异常“android.view.InflateException: Binary XML file line # : Error inflating class”
  2. NLP专题论文解读:从Chatbot、NER到QA系统...
  3. python怎么输出字符串_python出输出字符串方式:
  4. Daily Report 2012/11/09 陈伯雄(step 9)
  5. NLP中的Mask全解
  6. 修改 IIS 队列长度
  7. WEBGL学习【四】模型视图矩阵
  8. 区块链到底是什么?和普通人有什么关系?
  9. maven配置其他源下载jar包(详细)
  10. 洛谷 P1028 数的计算【递推】
  11. 阿里百度旷视商汤京东,AI大厂怎么看产业实践?
  12. “你的深度学习框架包含15个漏洞”,360说 | 附论文
  13. java的字符_Java中的字符
  14. novatel中DGPS和RTK以及ppp的terrraStar-x的记录
  15. 5G移动通信网络构架与关键技术要点探讨
  16. C语言之数组求中位数-封装函数
  17. php-fpm配置 listen,php-fpm – 配置详解
  18. js map根据value获取key
  19. 找工作系列之-操作系统
  20. C语言中删除重复字母,删除C ++中的重复字母

热门文章

  1. 前端学习(809):api简介
  2. 前端学习(693):for循环案例之求出偶数奇数之和
  3. 前端学习(583):在console中访问节点
  4. 实例59:python
  5. CSS之Responsive网页设计的三个特性
  6. CSS之Box-sizing
  7. 计算机一级115,计算机一级BASIC模拟115.doc
  8. springboot a service调用b service_CaaS: 内容是新的基础设施 Content-as-a-Service
  9. 强大的jQuery图片查看器插件Viewer.js
  10. ASP.NET中TextBox控件的AutoCompleteType属性(不保存历史输入记录)