美文网首页IT技术篇
Java基础教程(15)--枚举类型

Java基础教程(15)--枚举类型

作者: 游戏原画设计 | 来源:发表于2019-01-15 15:08 被阅读0次

 枚举类型定义了一个枚举值的列表,每个值是一个标识符。例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况:

publicenumDay {    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}

实际上,这个声明定义的类型是一个类,它有7个实例。因此,在比较两个枚举类型的值时,永远不需要调用equals,直接使用“==”就可以了。

枚举类型的值类似于一个常量,因此,按照惯例拼写都使用大写字母。而枚举类型的命名则与类名的命名规则一致。

一旦定义了枚举类型,就可以使用这个类型来声明变量:

Day day;

  变量day只能是枚举类型Day中的一个值或null。可以使用下面的语法访问枚举值:

EnumName.ValueName

  例如,下面的语句将枚举值赋给变量day:

day = Day.SUNDAY;

  可以在一个枚举类型的对象上使用下面的方法:

public String name();

  返回枚举值的名字。

public int ordinal();

返回枚举值的序号。枚举类型中的第一个值序号为0,第二个值序号为1,依次类推。

下面的例子展示了枚举类型的使用:

publicclassEnumDemo{enumDay {        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY    }publicstaticvoidmain(String[] args){        Day day1 = Day.FRIDAY;        Day day2 = Day.THURSDAY;        System.out.println("The name of day1 is"+ day1.name());        System.out.println("The name of day2 is"+ day2.name());        System.out.println("The ordinal of day1 is"+ day1.ordinal());        System.out.println("The ordinal of day2 is"+ day2.ordinal());    }}

  这个程序的输出如下:

The name of day1 is FRIDAYThe name of day2 is THURSDAYThe ordinal of day1 is5The ordinal of day2 is4

由于枚举类型是Object类的子类和Comparable接口的实现类,因此可以对枚举对象调用Object类的方法,例如equals,toString等,也可以调用Comparable接口的compareTo方法。

在switch-case语句中使用枚举类型时,case标签可以是省略枚举类型的枚举值,例如:

switch(day) {caseSUNDAY:// process SUNDAYcaseMONDAY:// process MONDAY...}

  可以定义具有数据域、构造器和方法的枚举类型:

publicenumDay {    SUNDAY("星期天"), MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),    THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六");publicString description;privateDay(String description){this.description = description;    }publicStringgetDescription(){returndescription;    }}

  需要注意的是,当枚举类型中除了枚举值的声明外还有其他部分时,枚举值的声明必须是第一条语句,且结尾处需要使用分号。此外,由于枚举值的数量是在编译期就确定的,因此不建议创建新的枚举值,所以Java语法要求枚举类型的构造方法是私有的以避免被直接调用。private修饰符可省略,这种情况下,构造方法也会被默认为私有的。

出处:https://www.cnblogs.com/maconn/

相关文章

  • Java基础教程(15)--枚举类型

     枚举类型定义了一个枚举值的列表,每个值是一个标识符。例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况:...

  • 枚举

    枚举 wiki Java的枚举类型用法介绍 深入理解Java枚举类型(enum) 为什么要用enum? 学习计划 ...

  • [Kotlin Tutorials 5] 枚举和Sealed C

    枚举和Sealed Class 枚举 首先, Kotlin和Java一样, 也是有枚举类型的: 枚举类型还可以实现...

  • Java中的枚举,这一篇全了,一些不为人知的干货

    Java枚举,也称作Java枚举类型,是一种字段由一组固定常量集合组成的类型。枚举的主要目的是加强编译时类型的安全...

  • java枚举类型

    Java中的枚举就像任何其他类一样,具有一组预定义的实例。 这里有几个例子来强调如何使用Java Enum。 1....

  • Java枚举类型

    一、枚举定义 枚举不能定义在静态方法中 一般自定义的枚举类型都属于Enum的子类型EnumType 它默认就有两个...

  • java枚举类型

    一. 枚举类型的定义 定义 java.lang.Enum是在JDK1.5定义的. 定义为: 编程规约: 阿里巴巴出...

  • Java中的枚举详解

    定义枚举 JDK1.5引入了一种新的数据类型枚举类型。Java使用关键字enum声明枚举类型,语法格式如下: en...

  • Java枚举总结

    Java枚举总结 枚举类型比较简单,下面两个文章讲的比较清楚: Java 枚举(enum) 详解7种常见的用法 深...

  • Java Enum

    Enum 类型的介绍 枚举类型是Java5新增的特性之一,枚举是一种特殊类型的类,其枚举的每一个值都是该枚举类的一...

网友评论

    本文标题:Java基础教程(15)--枚举类型

    本文链接:https://www.haomeiwen.com/subject/selddqtx.html