Java枚举的定义,使用

一,枚举是什么?

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 [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);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php mysql

1 php 链接到MySQL 的语句&#xff1a; $conn mysql_connect("localhost","root","root") or die("数据库连接失败&#xff0c;请检查你的网络,稍后再试试"); 注&#xff1a;mysql_connect 打开一个到 MySQL 服务器的连接 mysql_sel…

第13章 程序的动态加载和执行(三,核心代码)

这个核心代码也是本书唯一的一个核心代码&#xff0c;把这个读懂了&#xff0c;本书基本上通了&#xff0c;这个核心代码不难&#xff0c;只是前面知识的综合应用而已&#xff0c;所以用一到两个星期把这个三个程序读熟再进行下面的四章。 怎么样才算是读通了一个代码&#xf…

输入字符串统计字符串中每个字符出现的次数

这是一个作业题。 我还遇到两次了… 利用map集合嘿哈哈搞定… import java.util.HashMap; import java.util.Scanner;public class CaclulateNum {public static void main(String[] args) {// 2&#xff1a;输入字符串统计字符串中每个字符出现的次数showNum();}static void …

html相对路径

“../”表示上一级目录开始 “./”表示当前同级目录开始 “/”表示根目录开始。 &#xff08;1&#xff09;../../ 表示源文件所在目录的上上级目录 &#xff08;2&#xff09;G:\site\index.htm 与G:\site\web\article\01.htm互做超链接。 index.htm要想链接到01.htm这个文…

py语法错误与异常处理

python的异常处理一&#xff0c;语法错误&#xff08;解析错误&#xff09;1&#xff0c;解析错误invalid syntax二&#xff0c;内置的异常1&#xff0c;内置异常三&#xff0c;异常的处理1&#xff0c;基本的try except语句2&#xff0c;except语句3&#xff0c;eles语句4&…

【雷军】给程序员的五点建议--如何成为编程高手并以此创业

除非特别注明&#xff0c;鸡啄米文章均为原创转载请标明本文地址&#xff1a;http://www.jizhuomi.com/career/286.html写在前面&#xff1a;此篇文章出自雷军之手&#xff0c;是他为软件开发2.0技术大会准备的演讲稿&#xff0c;但由于某些原因没有派上用场。这里跟大家分享下…

重构,改善既有代码的设计--第八章感悟

1.如果你看到一个数组的行为方式很像一个数据结构&#xff0c;就可以把数组变成对象 private int aa,变成: int aa; public int GetAA() {return aa;}//好处&#xff1a;使得获取的数据更加有效 转载于:https://www.cnblogs.com/ITGirl00/p/3696741.html

计算机网络重要机制(一)可靠数据传输

操作系统&#xff0c;计算机网络都属于计算机系统&#xff0c;为了使得整个系统运行起来&#xff0c;人们根据当时的硬件条件和理论认识设计了各种的算法&#xff08;也可以叫机制&#xff09;&#xff0c;这些机制有些被抛弃&#xff0c;有些被进化。所以操作系统、计算机网络…

命名空间和作用域

一&#xff0c;namespace namespace是名字到对象的映射&#xff0c;python里面的大部分命名空间由字典实现。如果有性能问题&#xff0c;会更改。 命名空间的举例 •存放内置函数的集合&#xff08;abs()这种函数&#xff0c;和内建的异常&#xff09; •模块中的全局名称 •函…

[转载]《STL源码剖析》阅读笔记之 迭代器及traits编程技法

本文从三方面总结迭代器 迭代器的思想迭代器相应型别及traits思想__type_traits思想一 迭代器思想 迭代器的主要思想源于迭代器模式&#xff0c;其定义如下&#xff1a;提供一种方法&#xff0c;使之能够依序巡防某个聚合物&#xff08;容 器&#xff09;所含的元素&#xff0c…

python类

一&#xff0c;类 1&#xff0c;类是摸板&#xff0c;里面有组合数据&#xff0c;实现功能的方法。 2&#xff0c;类里面有可以改变自身的方法__init__函数 3&#xff0c;类和模块类似&#xff0c;运行时创建&#xff0c;创建后修改 4&#xff0c;类成员通常是public&#xff…

关于Coursera视频不能播放问题

1&#xff0c;打开C:\Windows\System32\drivers\etc目录&#xff1b; 2&#xff0c;修改host文件&#xff0c;在最后添加52.84.246.72 d3c33hcgiwev3.cloudfront.net&#xff0c;保存&#xff1b; 3&#xff0c;重启浏览器或者刷新Coursera视频网址&#xff0c;搞定。

Web Form要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。”的解决办法。...

1.先将aspnet.scriptmanager.jquery.dl 复制到bin (网站根目录下的bin文件夹找不到&#xff0c;看看下面的图片中点击[显示所有文档]) 文件夹下。 2.在网站根目录下scripts文件夹,向里边添加jquery-1.7.2.min.js和jquery-1.7.2.js(可根据自己需要使用不同的版本&#xff09;…

python继承多重继承

一&#xff0c;基本语法 class MyClass(BaseClass):def __init__(self):print(...)class MyDefineClass(object):def __init__(self):print(继承自object类)MyDefineClass.__init__(None) # 属性访问 me MyDefineClass() # 实例对象 继承自object类 继承自object类 二&#x…

第14章 任务和特权级保护

学习这一章感觉异常的困难&#xff0c;所以学习从14-17章&#xff0c;每一章学扎实了&#xff0c;弄懂了每个问题再进行下一章&#xff0c;后一章都是在前一章的基础上增加一些数据结构和机制。另外读的时候可以各个击破&#xff0c;每次只搞明白一个小问题。读这一章可能需要两…

python 生成器推导式

# 生成器 generator 用yield来返回数据 def reverse(data):for i in range(len(data) - 1, -1, -1): # range(start, end, step) 不包括endyield data[i]def test_generator():for char in reverse(abc):print(char)# test_generator()c b a生成器表达式&#xff1a;与列表推导…

Windows XP系统安装SQL Server 2005(开发版)图解

转自Windows XP系统安装SQL Server 2005(开发版)图解 安装前提:由于有些从网上的下载的项目需要导入SQL Server 2005的数据文件&#xff0c;因此&#xff0c;今天便安装了这个数据库&#xff0c;我的系统中已经安装了SQL Server2000所以是在它之上安装SQL Server2005的。 一、数…

《软件工程(C编码实践篇)》课后感

Fibonacci&#xff08;与最后申请证书的姓名务必一致&#xff09; 原创作品 《软件工程&#xff08;C编码实践篇&#xff09;》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 1&#xff08;20分&#xff09;软件工程&#xff08;C编码实践篇&#xff09;学习总…

用turtle画各种各样的数学图形

ps&#xff0c;用turtle导入小海龟来画图。画图代码都要导入海龟库哦&#xff0c;见下面第一行。 import turtle as t直线 # 画直线 def draw_line():pen t.Pen()pen.fd(200) # 直线默认水平方向 draw_line() 画正方形 def draw_square():pen t.Pen()for i in range(4): …

从网络字节流中提出整数

最近在做一个项目&#xff0c;就是设计一套通信协议&#xff0c;利用nginx来实现解析。协议内容是包括整数和字符串&#xff0c;现在客户端收到服务器端发送的网络字节流时&#xff0c;需要从中提取出整数&#xff0c;再根据整数决定发送数据量的大小。如下所示&#xff1a; p …