`
haibin369
  • 浏览: 58752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中enum(枚举)的基本应用

    博客分类:
  • Java
阅读更多

枚举是将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,常用来表示一组常数。在Java中,除了不能继承自一个enum之外,我们基本上可将enum看作一个常规的类。

 

基本用法:

enum Color {
    BLUE, WHITE, GREEN
}

public class EnumTest {
    public static void main(String[] args) {
        //values()方法返回代表枚举中所有值的数组
        for (Color color : Color.values()) {
            printColor(color);
        }

        //使用valueOf()或者具体名字获取枚举值
        System.out.println(Color.valueOf("BLUE"));
        System.out.println(Color.GREEN);
    }

    public static void printColor(Color color) {
        //name()方法返回枚举的名字
        System.out.print("name: " + color.name());

        //ordinal()方法返回枚举声明的次序
        System.out.print(" ordinal: " + color.ordinal());

        //在switch中使用枚举
        switch (color) {
            case BLUE:
                System.out.println(" RGB code: #0000FF");
                break;
            case WHITE:
                System.out.println(" RGB code: #FFFFFF");
                break;
            case GREEN:
                System.out.println(" RGB code: #008000");
                break;
        }
    }
}

 

 

输出:

name: BLUE ordinal: 0 RGB code: #0000FF
name: WHITE ordinal: 1 RGB code: #FFFFFF
name: GREEN ordinal: 2 RGB code: #008000
BLUE
GREEN

 

 

添加属性,构造函数和方法:

enum Color {
    // 调用构造函数初始化枚举
    // 必须先声明枚举值再声明变量和方法
    // 如果有变量或者方法,则最后一个枚举声明后面必须加分号
    BLUE("#0000FF"),
    WHITE("#FFFFFF"),
    GREEN("#008000");

    private String rgbCode;
    //构造函数,必须为private
    private Color(String rgbCode){
        this.rgbCode = rgbCode;
    }
    // 枚举方法
    public String getRgbCode(){
        return rgbCode;
    }
}
public class EnumTest {
    public static void main(String[] args) {
        for (Color color : Color.values()) {
            printColor(color);
        }
    }

    public static void printColor(Color color) {
        //调用枚举的方法
        System.out.println(color.name() + ": " + color.getRgbCode());
    }
}

 输出:

BLUE: #0000FF
WHITE: #FFFFFF
GREEN: #008000

 

 静态方法,实例方法与重载:

enum Color {
    BLUE {
        //覆盖实例方法
        public String getRGBCode() {
            return "#0000FF";
        }
    },
    WHITE {
        public String getRGBCode() {
            return "#FFFFFF";
        }
    },
    GREEN;

    //实例方法(也可定义抽象方法让具体枚举实现)
    public String getRGBCode() {
        return "Not Defined.";
    }

    //静态方法
    public static String getColorInfo(){
        return "Color: Blue, White, Green.";
    }
}

public class EnumTest {
    public static void main(String[] args) {
        System.out.println(Color.getColorInfo());

        for (Color color : Color.values()) {
            System.out.println(color.name() + ": " + color.getRGBCode());
        }
    }
}

 输出:

Color: Blue, White, Green.
BLUE: #0000FF
WHITE: #FFFFFF
GREEN: Not Defined.

 

 

分享到:
评论

相关推荐

    JAVA高级编程中Enum枚举

    java高级编程 Enum枚举 包括枚举的例子,问题 及一些文档,是复习的好资源

    enum枚举类的应用

    包含了关于枚举类的应用,以及枚举类和接口的组合应用,扩展映射关系。很有用的工具类。

    高阶Java-Java枚举类型 enum 应用详解

    NULL 博文链接:https://janeky.iteye.com/blog/463611

    Java试题-1:交通灯枚举

    Java试题-1:交通灯枚举 典型的Java面试题 有关于枚举的应用及交通灯枚举的答案

    genum:从YAML生成Java枚举类

    Genum是从YAML数组生成Java枚举类文件的代码生成器。 您可以在服务器端和客户端应用程序之间共享定义! 例如,这是一个以YAML格式编写的数组。 - Tokyo - NewYork - London - Beijing - Paris - Roma Genum将其...

    Java期末复习——枚举与反射机制

    Java——枚举: enum关键字、Enum类 类集对枚举的支持——EnumMap类与EnumSet类 枚举类实现接口、在枚举类中定义抽象方法 Java反射机制: Class类、Class类的使用 反射的应用:取得类的结构

    Java JDBC简单入门之枚举(Enum)、泛型、反射、JDBC整合

    采用java 应用程序的方式搭建简单的jdbc项目,JDBC简单入门之枚举(Enum)、泛型、反射、JDBC整合

    Java零基础-final关键字.md

    建议通过阅读相关的Java教材或搜索资料,进一步了解与final关键字相关的高级主题,如不可变类和Enum枚举等内容。 如有疑问,可以参考Java官方文档或向技术论坛寻求帮助,进一步加深对final关键字的理解。

    inum:Inum(整数的枚举类型)提供类似于Java-Enum的形式

    Inum(整数的枚举类型)提供类似于Java枚举的Enum。 Inum具有通过i18n进行本地化的功能。 安装 将此行添加到您的应用程序的Gemfile中: gem 'inum' 然后执行: $ bundle 或将其自己安装为: $ gem install ...

    java Graphics2D 画流程图全代码,包含封装类工具类枚举的全部应用 并生成图片

    按照工具类要求把模块的要求参数传入和封装,把线条的参数要求和封装可以很成功的生成流程图样子

    Java开发详解.zip

    031404_【第14章:枚举】_枚举的其他应用笔记.pdf 031501_【第15章:Java反射机制】_认识Class类笔记.pdf 031502_【第15章:Java反射机制】_Class类的使用笔记.pdf 031503_【第15章:Java反射机制】_反射应用——...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    7.2.3 使用enum枚举常数 221 7.3 重点复习 224 7.4 课后练习 224 chapter8 异常处理 231 8.1 语法与继承架构 232 8.1.1 使用try、catch 232 8.1.2 异常继承架构 235 8.1.3 要抓还是要抛 238 8.1.4 ...

    Android使用注解代替枚举节省系统内存开销的方法

    Java5以后开始支持枚举类型,枚举类型使用起来非常方便,其重要的作用是作为类型安全使用的。如果在不考虑系统内存开销的情况下大量的使用枚举也不会有什么问题。但是移动端还是需要注意的。 android系统在应用启动...

    JAVA面向对象详细资料

    1、找出应用中可能需求变化的代码,把它们独立出来,不要和那些需求不变化的的代码混在一起 54 2、针对接口编程,而不要针对实现类编程 54 3、多用组合,少用继承(包含实现) 54 4、为了交互对象之间的松耦合设计而...

    Java 高级特性.doc

    5.在JAVA的程序中,我经常性的看到字符前面有@这种标志的符号.这个就叫做注解! 下面是使用 @SuppressWarnings 来取消 deprecation 警告的一个例子: public class Test { @Deprecated //在eclipse下运行的时候,...

    Java EE 编码规范.docx

    4、枚举( Enum )的命名 4 5、异常( Exception )的命名 4 6、方法( Method )的命名 4 7、参数( Param )的命名 4 8、常量字段 ( Constants )的命名 4 三、注释规范 5 1、一般概念 5 2、注释哪些部分 5 3、...

    EnumResources:实用程序类,用于将Android资源绑定到Enum值

    枚举资源 我经常发现自己对我的应用程序UI状态有一个枚举。 例如,您可能有一个下拉列表,该值控制片段/活动的行为以及外观(例如工具栏颜色)。 您可以将此元数据存储在它们自己的枚举值中,但是这样做可以使它们...

    Java开发技术大全 电子版

    11.2.8枚举(Enum)使用示例355 11.2.9枚举集(EnumSet)使用示例358 11.3常用算法361 11.3.1Collections中的简单算法361 11.3.2排序362 11.3.3二分查找364 11.4遗留的类和接口366 11.4.1Enumeration接口简介...

Global site tag (gtag.js) - Google Analytics