Java枚举的七种常见用法总结(必看)_java

用法一:常量

在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

Java代码

public enum Color {

RED, GREEN, BLANK, YELLOW

}

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

Java代码

enum Signal {

GREEN, YELLOW, RED

}

public class TrafficLight {

Signal color = Signal.RED;

public void change() {

switch (color) {

case RED:

color = Signal.GREEN;

break;

case YELLOW:

color = Signal.RED;

break;

case GREEN:

color = Signal.YELLOW;

break;

}

}

}

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且Java要求必须先定义enum实例。

Java代码

public enum Color {

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

// 普通方法

public static String getName(int index) {

for (Color c : Color.values()) {

if (c.getIndex() == index) {

return c.name;

}

}

return null;

}

// get set 方法

public 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()方法覆盖的例子。

Java代码

public enum Color {

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

//覆盖方法

@Override

public String toString() {

return this.index+"_"+this.name;

}

}

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java不支持多继承,所以枚举对象不能再继承其他类。

Java代码

public interface Behaviour {

void print();

String getInfo();

}

public enum Color implements Behaviour{

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

//接口方法

@Override

public String getInfo() {

return this.name;

}

//接口方法

@Override

public void print() {

System.out.println(this.index+":"+this.name);

}

}

用法六:使用接口组织枚举

Java代码

public interface Food {

enum Coffee implements Food{

BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO

}

enum Dessert implements Food{

FRUIT, CAKE, GELATO

}

}

用法七:关于枚举集合的使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

以上就是小编为大家带来的Java枚举的七种常见用法总结(必看)全部内容了,希望大家多多支持~

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java枚举类的用法
常见的火源有七种类型、u 型枕的七种用法图解、枚举类型enum用法、java枚举类型的用法、c 枚举用法,以便于您获取更多的相关知识。

时间: 2024-08-03 13:03:35

Java枚举的七种常见用法总结(必看)_java的相关文章

深入C++ typedef的用法总结(必看)_java

第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量:以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省

七种常见的Word打印设置技巧

  七种常见的Word打印设置技巧          1.打印指定页码 有些时候,我们只希望打印文档中的某些页码,只要点击菜单命令"文件→打印",在打开的"打印"对话框中,选中"打印当前页面"单选项,那么就可以打印当前鼠标所在的页面内容. 如果我们选中"打印自定义范围"单选项,就可以随意指定打印页码了. 假如我们要打印的页码是连续的,那么只要选择"打印自定义范围"后输入起始和终止的页码,中间用"-

解密七种常见的友情链接作弊手段

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 友情链接作弊,让权重暗渡陈仓.今天推草网曹操来解密七种常见的友情链接作弊手段,让更多站长去防范它. 友情链接作弊手段一:交叉链接 用一个无足轻重但同时看起来权重还不错的网站,同别人交换链接,让对方的网站链接你的另一个主推的站,用这个垃圾站链接他的站,让对方站为你的这个主推的站输送权重. 友情链接作弊手段二:先上后下 何谓先上后下?找一个人交换

利用JS提交表单的几种方法和验证(必看篇)_javascript技巧

工作中发现表单提交方便的问题,很多时候IE下提交好好的,打了火狐下就出现了问题,利用提交按钮就不成功了,于是利用JS的方式就成功了,也不知道为什么.在导师的催促下就总结出以下的几种常用表单提交的方法. 第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 <script type="text/javascript"> function validate(obj) { if (confirm("提交表单?")) { aler

RSA加密算法java简单实现方法(必看)_java

简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码. package security; import java.security.*; import java.security.spec.*; import java.security.interfaces.*; import javax.crypto.spec.*; import javax.crypto.interfaces.*; import ja

java中使用try-catch-finally一些值得注意的事(必看)_java

我们知道,try负责圈定可能会出异常的代码:catch负责处理try中可能异常的处理,如记录错误日志,使业务能够正常运行:finally负责资源释放等善后工作,无论有无异常都必须要执行的代码,一般都是放在finally中的.如果catch和finally也会出现异常,那么会是什么效果呢? try { // java.lang.ArithmeticException int a = 1 / 0; } catch (Exception e) { System.out.println("catch&q

java枚举的两种遍历方法

我们可以通过反射, 以及枚举类的静态方法values()来进行遍历:  代码如下 复制代码 enum Rating  {      UNRATED,      G,      PG,      PG13,      R,      NC17    }  public class Test{    public static void main(String args[]){      System.out.println("第一种通过反射");       Class clz=Rati

审查Java代码的十一种常见错误

代码审查是消灭Bug最重要的方法之一,这些审查在大多数时候都特别奏效.由于代码审查本身所针对的对象,就是俯瞰整个代码在测试过程中的问题和Bug.并且,代码审查对消除一些特别细节的错误大有裨益,尤其是那些能够容易在阅读代码的时候发现的错误,这些错误往往不容易通过机器上的测试识别出来.本文就常见的Java代码中容易出现的问题提出一些建设性建议,以便您在审查代码的过程中注意到这些常见的细节性错误. 通常给别人的工作挑错要比找自己的错容易些.别样视角的存在也解释了为什么作者需要编辑,而运动员需要教练的原

sumif函数的几种常见用法

  一.SUMIF函数的一个怪异用途 Excel表格中的SUMIF函数在条件求和时经常使用,一般习惯于于根据某一列计算另一列的数字之和. 例1:假设置A列是部门,B列是姓名,C列是工资,可以用下面的公式算出所有财务部员工的工资总和: =SUM(A1:A100,"财务部",C1:C100) 今天说的不是这个正规用法,而是给大家介绍一种看上去和SUMIF毫无关系的例子. 如下图中,是一些不规则的数据,只关注填充颜色的区域,现在要计算所有A下面数字之和,看上去这个题没有好的思路,其实这个题恰