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 enum用法的更多相关文章

  1. Java Enum用法详解

    Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...

  2. java Enum 用法示例

    public enum MyEnum { Monday, Tuesday, Wednesday, Thursady, Friday, Saturday, Sunday; public static v ...

  3. java enum 用法

    /* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2010, Red Hat Inc. or th ...

  4. Java Enum解析【转】

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

  5. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  6. 如何使用Java Enum

    简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值.如: 性别: public enum SexEnum { male, female; } 颜色: pub ...

  7. (转)java enum枚举

    转载自: 原理:http://singleant.iteye.com/blog/686349 应用:http://www.cnblogs.com/happyPawpaw/archive/2013/04 ...

  8. 你真的了解java的lambda吗?- java lambda用法与源码分析

    你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...

  9. java enum

    小谈Java Enum的多态性 博客分类: Java JavaAppleJDKJVMIDEA  Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态 ...

随机推荐

  1. c语言中反转字符串的函数strrev(), reverse()

    1.使用string.h中的strrev函数 #include<stdio.h> #include<string.h> int main() { char s[]=" ...

  2. iOS-tableView刷新指定行,组

    /一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:]; [tableview reloadSections:inde ...

  3. ZOJ 1666 G-Square Coins

    https://vjudge.net/contest/67836#problem/G People in Silverland use square coins. Not only they have ...

  4. poj2018——Best Cow Fences

    Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each fie ...

  5. wsgiref 源码解析

    Web Server Gateway Interface(wsgi),即Web服务器网关接口,是Web服务器软件和用Python编写的Web应用程序之间的标准接口. 想了解更多关于WSGI请前往: h ...

  6. POJ2942:Knights of the Round Table——题解

    http://poj.org/problem?id=2942 所写的tarjan练习题最难的一道. 说白了难在考得不是纯tarjan. 首先我们把仇恨关系处理成非仇恨关系的图,然后找双连通分量,在双连 ...

  7. BZOJ3224:普通平衡树——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3224 题面源于洛谷 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下 ...

  8. 洛谷 P3380 bzoj3196 Tyvj1730 【模板】二逼平衡树(树套树)

    [模板]二逼平衡树(树套树) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的数值 查询k在 ...

  9. 2016多校联合训练1 B题Chess (博弈论 SG函数)

    题目大意:一个n(n<=1000)行,20列的棋盘上有一些棋子,两个人下棋,每回合可以把任意一个棋子向右移动到这一行的离这个棋子最近的空格上(注意这里不一定是移动最后一个棋子),不能移动到棋盘外 ...

  10. ContestHunter暑假欢乐赛 SRM 05

    T1 组合数,求一下乘法逆元就行了 没取模 没1LL* 爆零了 T2 让最大子段和最小就行,跑最大子段和的时候若超过S就弹出堆中最大的数,每次有负数加进来不断弹出最小的数相加重新加进堆直到为正数,因为 ...