Enum Types

参考Java的官方tutorialDoc整理如下。

What is Enum

An enum type is a special data type.

It enables for a variable to be a set of predefined constants. Because they are constants, the names of an enum type‘s fields are in UPPERCASE letters.

For example, you can specify a days-of-the-week enum type as:

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY
}

You can use enum by . (dot), example Day.MONDAY

Enum can be more powerful. The enum declaration defines a class (called an enum type). The enum class body can include methods and other fields.

For example, you can specify a planet enum type:

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) {
        if (args.length != 1) {
            System.err.println("Usage: java Planet <earth_weight>");
            System.exit(-1);
        }
        double earthWeight = Double.parseDouble(args[0]);
        double mass = earthWeight/EARTH.surfaceGravity();
        for (Planet p : Planet.values())
           System.out.printf("Your weight on %s is %f%n",
                             p, p.surfaceWeight(mass));
    }
}
时间: 2024-10-12 18:52:15

Enum Types的相关文章

Entity Framework 教程——模型浏览器

模型浏览器: 在之前的章节中,我们创建了第一个关于学校的实体数据模型.但是EDM设计器并没有将他所创建的所有对象完全显示出来.它只将数据库中的被选择的表与视图显示出来了. 模型浏览器可以将EDM所创建的所有对象和函数的信息都显示出来.右键EDM设计器并在菜单中选择模型浏览器即可打开. 模型浏览器包含EDM的所有信息,如概念模型,存储模型,映射关系都在其中. 如上图所示,模型浏览器包含以下对象: Diagrams: 模型浏览器包含EDM的可视化关系图.我们可以看到EDM默认会创建一个关系图.当然,

java语法糖

语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用了.这些语法糖虽然不会提供实质性的功能改进,但是它们或能提高性能.或能提升语法的严谨性.或能减少编码出错的机会.Java提供给了用户大量的语法糖,比如泛型.自动装箱.自动拆箱.foreach循环.变长参数.内部类.枚举类.断言(assert)等 断言(as

C# 枚举的初始化

3.2 枚举类型(Enum types)的默认值 对于枚举类型(Enum types),.NET会自动将字面值0(literal 0)隐式地转换为对应的枚举类型. 3.2.1 有一个0值成员 如果枚举类型中的某个成员被赋予0值(不要求是第一个成员),那么枚举变量所储存的值就是该成员的值.假定Alignment的成员被赋值如下: //Code #06enum Alignment{ Left = 1, Center = 0, Right = 2} 那么,下面这句 Alignment a = new

Java Enums

Table of Contents Enum Example Enums in if Statements Enums in switch Statements Enum Iteration Enum Fields Enum Methods Enum Miscellaneous Details A Java Enum is a special Java type used to define collections of constants. More precisely, a Java enu

使用spring-loaded开源项目,实现java程序和web应用的热部署

JDK1.5之后提供了java.lang.instrument.Instrumentation,即java agent机制能够实现类的redefinition和retransform. redefinition对应Instrumentation.redefineClasses()能够实现类的热替换,但遗憾的是功能很有限. The redefinition may change method bodies, the constant pool and attributes. The redefin

Default Method in Java 8

Default Methods The section Interfaces describes an example that involves manufacturers of computer-controlled cars who publish industry-standard interfaces that describe which methods can be invoked to operate their cars. What if those computer-cont

postgresql 和.NET类型对照表

PostgreSQL type 默认的 .NET 类型 特定提供的类型 其他 .NET 类型 bool bool     int2 short   byte, sbyte, int, long, float, double, decimal, string int4 int   byte, short, long, float, double, decimal, string int8 long   long, byte, short, int, float, double, decimal,

java开发总体知识复习

[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等) 上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助. 第一部分: Java基础(此部分面试题题目来自:http://www.ho

Effective Java 70 Document thread safety

Principle The presence of the synchronized modifier in a method declaration is an implementation detail, not a part of its exported API. To enable safe concurrent use, a class must clearly document what level of thread safety it supports. Immutable ?