Java记录 -79- 枚举(Enums)

枚举(Enums)

JDK1.5加入了一个全新的类型的“类”--枚举类型。为此JDK1.5引入了一个新关键字enum。我们可以这样来定义一个枚举类型

Public enum Color{

Red,

White,

Blue

}

然后可以这样来使用 Color myColor = Color.Red;

枚举类型还提供了两个很有用的静态方法 values()和valueOf()。我们可以很方便的使用它们,例如:

for(Color c : Color.values())

System.out.println(c);

定义枚举类型时本质上就是定义一个类别,只不过很多细节由编译器帮您完成了,所以某种程度上,enum关键字的作用就像是class或interface。

当您使用“enum”定义枚举类型时,实质上您定义出来的类型继承自java.lang.Enum类型,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被预设为final,所以您无法改变它们,它们也是static成员,所以您可以通过类型名称直接使用它们,当然最重要的它们都是公开的public。换句话说,当定义一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。

枚举简单的定义与使用:

//枚举的定义
public enum Color {

    Red, White, Blue
}
//枚举的使用
public class ColorTest {

    public static void main(String[] args){
        Color myColor = Color.Red;
        System.out.println(myColor);
        
        for(Color c : Color.values()){
            System.out.println(c);
        }
    }
}

枚举通用场景:

public class EnumTest {

    public static void doOp(OpConstant op){
        switch(op){
        case TURN_LEFT:
            System.out.println("向左转");
            break;
        case TURN_RIGHT:
            System.out.println("向右转");
            break;
        case SHOOT:
            System.out.println("射击");
            break;
        }
    }
    public static void main(String[] args){
        doOp(OpConstant.SHOOT);
    }
}
enum OpConstant{
    TURN_LEFT, TURN_RIGHT, SHOOT
}
时间: 2024-07-29 19:07:56

Java记录 -79- 枚举(Enums)的相关文章

Java学习系列(二十二)Java面向对象之枚举详解

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45332565 一.前言 今天我们来讲讲枚举,希望通过这篇博客大家能对枚举有个更全面的了解.枚举是一种实例(大写)数固定的类(不能再创建实例),多用于确定的状态数(如:鼠标上下左右.IM消息已读未读).类型数(如:系统.聊天.添加好友消息,我的他的).模式数(回复.评论模式,刷选.全部模式)等等.枚举和类一样,同样有抽象类.可以实现接口.可含内部类.初始化块,值得注意的是:枚举的构造器无论

java之enum枚举(2015年05月28日)

背景: 今天启动了一个新的项目,由于要从之前的旧项目中拿过来一些代码,所以就看了下公司之前项目代码,发现有定义的常量类,也有枚举类,然后就在想着两者的功能差不多,那他们之间到底有什么区别呢,所以就决定了解下enum枚举   一.简介 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型. 二.基本用法 1.作为常量使用 一个完整的枚举类型示例 /** * 枚举 * @author Dreyer * @since 1.0 * @dat

【Java记录】try-with-resources的一个坑

[Java记录]try-with-resources的一个坑 今天处理 AsynchronousFileChannel 时候的一个问题,代码如下: public static void main(String[] args) throws Exception { String filePath = "/home/xe/git/osc/JavaNote/Lang/data/Test.java"; ExecutorService executorService = Executors.ne

Java 语法 索引 ----- 枚举(Enum)

enum Speed { STOP, SLOW, NORMAL, FAST } Speed s = Speed.SLOW; switch(s) { case SLOW: break; } 参考文献: Java Quick Syntax Reference by Mikael Olsson Java 语法 索引 ----- 枚举(Enum)

Java 基础之-枚举

目录(?)[-] 用法一常量 用法二switch 用法三向枚举中添加新方法 用法四覆盖枚举的方法 用法五实现接口 用法六使用接口组织枚举 用法七关于枚举集合的使用 DK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 pu

【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-import.html#1.2.values方法的使用: Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由arthinking发表于4年前 | Java基础 | 暂无评论 |  被围观 8,332 views+ 1.枚举(Enum):1.1.枚举类型中的两个静态方法:1.2.values方法的使用:

Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别

Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始-元组(tuples). 元组(tuple) 元组是多个值组成的复合值类型,例如,你可以定义一个含有整形和字符串的tuple let amout=(100,"EUR") 当你函数需要返回多个值时,元组这个时候非常有用,你可以使用下标方式来访问元组中的值,如.0,.1以此类推,如下: let

Java内部类,枚举

模式: 模板模式: 简单工厂模式: 适配器模式:  interface ICellPhone  {   void sendMsg();  } class Android implements ICellPhone  {   public void sendMsg()   {    System.out.println("我爱你");   }  } class ITCAST implements ICellPhone  {   public void sendMsg()   {    S

深入Java 1.5枚举类型的内部实现原理

Java是一种面向对象的高级编程语言.它的出众之处就在于它的简洁.一个程序员所要做的就是创建类(Create Class)以及定义接口(Define Interface),如此而已.当然,这种简洁和优美是有代价的,比如失去了Enum这种广泛使用的数据类型就是一个不小的损失.在Java 1.5以前,程序员们不得不通过一些变通的方法来间接的解决这一问题.比如说,被普遍使用的整数枚举替代法和类型安全类替代法(Type safe Enum).在正式讨论Java 1.5的枚举类型之前,让我们先简单回顾一下