首页 > 学院 > 开发设计 > 正文

java enum用法

2019-11-14 21:58:45
字体:
来源:转载
供稿:网友
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);    }}

上一篇:Hibernate4.x之Session

下一篇:Struts2 配置项

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表