java中enum的用法

 更新时间:2014年11月21日 09:05:35   投稿:shichen2014  
这篇文章主要介绍了java中enum的用法,包括了枚举类型的基本定义及用法分析,对于学习Java有着一定的学习与借鉴价值,需要的朋友可以参考下

本文实例讲述了java中enum的用法。分享给大家供大家参考。具体分析如下:

1. 基本用法

复制代码 代码如下:
enum Day {
    SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDAY, FRIDAY, SATURDAY;
}

枚举是常量,所以应该用大写。

2. 枚举是对象

枚举隐含地继承了java.lang.Enum,所以它具有java.lang.Enum的属性和方法。遍历枚举:

复制代码 代码如下:
public class Main {
    public static void main(String[] args) {
        for(Day day:Day.values()) {
            System.out.println(day);
        }
    }
}

3. 枚举可以带字段和方法,以下示例来自官方The Java™ Tutorials
复制代码 代码如下:
public enum EnumDemo {
    AOBJECT("field one", "field two");

    private String field1;
    private String field2;

    EnumDemo(String val1, String val2){
        this.field1 = val1;
        this.field2 = val2;
    }

    public void printFields(){
        System.out.println(this.field1);
        System.out.println(this.field2);
    }

    public static void main(String[] args) {
        EnumDemo.AOBJECT.printFields();
    }
}


以下现实中的示例来自官方的Java Tutorial:
复制代码 代码如下:
public enum Planet {
    MERCURY (3.303e+23, 2.4397e6),
    VENUS   (4.869e+24, 6.0518e6),
    EARTH   (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,   7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters

    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }

    private double mass() { return mass; }
    private double radius() { return radius; }

    // universal gravitational constant  (m3 kg-1 s-2)
    public static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }

    double surfaceWeight(double otherMass) {
        return otherMass * surfaceGravity();
    }

    public static void main(String[] args) {
        Double earthWeight = 120;
        for(Planet p: Planet.values()){
            System.out.println(p.surfaceGravity());
            System.out.println(p.surfaceWeight(earthWeight/EARTH.surfaceGravity()));
        }
    }
}


4. 枚举是singleton,可以用枚举来构建一个Singleton
复制代码 代码如下:
public enum Singleton {
    INSTANCE(new String[]{"arg1", "arg2"});

    String[] myArgs;
    Singleton(String[] args){
        this.myArgs = args;
    }

    public static Singleton getInstance(){
        return INSTANCE;
    }

    public static void main(String[] args) {
        for(String arg : INSTANCE.myArgs)
            System.out.println(arg);
    }
}

希望本文所述对大家的Java程序设计有所帮助。

相关文章

  • 用Java实现OCR功能揭秘

    用Java实现OCR功能揭秘

    想知道如何用Java实现OCR功能吗?本指南将揭秘这一神秘技术,让你轻松掌握OCR的实现方法,无论是想提升技能还是解决问题,这篇指南都能帮助你一臂之力,需要的朋友可以参考下
    2023-12-12
  • IDEA中创建maven项目引入相关依赖无法下载jar问题及解决方案

    IDEA中创建maven项目引入相关依赖无法下载jar问题及解决方案

    这篇文章主要介绍了IDEA中创建maven项目引入相关依赖无法下载jar问题及解决方案,本文通过图文并茂的形式给大家分享解决方案,需要的朋友可以参考下
    2020-07-07
  • SpringMVC的REST风格的四种请求方式总结

    SpringMVC的REST风格的四种请求方式总结

    下面小编就为大家带来一篇SpringMVC的REST风格的四种请求方式总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SparkSQL使用快速入门

    SparkSQL使用快速入门

    spark SQL是spark的一个模块,主要用于进行结构化数据的处理。它提供的最核心的编程抽象就是DataFrame。这篇文章主要介绍了SparkSQL使用快速入门,需要的朋友可以参考下
    2021-08-08
  • 一文详解Java如何实现自定义注解

    一文详解Java如何实现自定义注解

    Java实现自定义注解其实很简单,跟类定义差不多,只是属性的定义可能跟我们平时定义的属性略有不同,这篇文章主要给大家介绍了关于Java如何实现自定义注解的相关资料,需要的朋友可以参考下
    2024-07-07
  • Spring+Quartz实现动态任务调度详解

    Spring+Quartz实现动态任务调度详解

    这篇文章主要介绍了Spring+Quartz实现动态任务调度详解,最近经常基于spring boot写定时任务,并且是使用注解的方式进行实现,分成的方便将自己的类注入spring容器,需要的朋友可以参考下
    2024-01-01
  • java配置文件取值的多种方式总结

    java配置文件取值的多种方式总结

    这篇文章主要为大家详细介绍了java配置文件取值的多种方式,包括一般项目,国际化项目,springboot项目,文中的示例代码讲解详细,需要的可以参考下
    2023-11-11
  • 详解Spring Boot 使用Spring security 集成CAS

    详解Spring Boot 使用Spring security 集成CAS

    本篇文章主要介绍了详解Spring Boot 使用Spring security 集成CAS,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • springboot2.x整合shiro权限框架的使用

    springboot2.x整合shiro权限框架的使用

    这篇文章主要介绍了springboot2.x整合shiro权限框架的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java中 IO 常用IO操作类继承结构分析

    java中 IO 常用IO操作类继承结构分析

    本篇文章小编为大家介绍,java中 IO 常用IO操作类继承结构分析。需要的朋友参考下
    2013-04-04

最新评论