`
standalone
  • 浏览: 615302 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java enum type

    博客分类:
  • java
阅读更多

In the following example, Planet is an enum type that represents the planets in the solar system. They are defined with constant mass and radius properties.

Each enum constant is declared with values for the mass and radius parameters. These values are passed to the constructor when the constant is created. Java requires that the constants be defined first, prior to any fields or methods. Also, when there are fields and methods, the list of enum constants must end with a semicolon.


Note: The constructor for an enum type must be package-private or private access. It automatically creates the constants that are defined at the beginning of the enum body. You cannot invoke an enum constructor yourself.

In addition to its properties and constructor, Planet has methods that allow you to retrieve the surface gravity and weight of an object on each planet. Here is a sample program that takes your weight on earth (in any unit) and calculates and prints your weight on all of the planets (in the same unit):

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));
    }
}
 
If you run Planet.class from the command line with an argument of 175, you get this output:
$ java Planet 175
Your weight on MERCURY is 66.107583
Your weight on VENUS is 158.374842
Your weight on EARTH is 175.000000
Your weight on MARS is 66.279007
Your weight on JUPITER is 442.847567
Your weight on SATURN is 186.552719
Your weight on URANUS is 158.397260
Your weight on NEPTUNE is 199.207413

 

分享到:
评论

相关推荐

    全面掌握java枚举类型(enum-type)1

    全面掌握 Java 枚举类型(enum type) Java 枚举类型是一种特殊的数据类型,它可以取有限个数的明确值。枚举类型的引入解决了 int 枚举模式和 String 枚举模式的缺点,提供了类型安全性、可读性和性能等优势。 ...

    java-enum-mimetype:MIME 类型的 Java 枚举类

    `java-enum-mimetype`项目提供了一个使用Java枚举实现的MIME类型管理类,使得在Java程序中操作MIME类型变得更加简单和规范。 在Java中创建一个MIME类型的枚举类,可以遵循以下步骤: 1. **定义枚举类**: 首先,...

    常用的MIME TYPE类型枚举类Enum整理 静态方法直接检索使用

    示例代码:String mimeType = MimeTypeEnum.getMimeTypeBySuffix("txt"); 不仅是一款实用的开发工具,更是代码整洁与项目高效管理的体现。通过它,可以专注于业务逻辑的实现,而将MIME类型管理的繁杂细节交给我们。...

    详解Java的Enum的使用与分析

    `EnumType.values()`返回所有枚举常量的数组,方便遍历和处理。 9. **枚举的枚举常量顺序**: 枚举常量的顺序是它们在源代码中出现的顺序,这个顺序是固定的。 10. **枚举的枚举常量的属性**: 枚举常量可以有...

    spring boot 枚举使用的坑整理

    在 Java 中,枚举类型可以使用 enum 关键字来定义。 在 Spring Boot 应用程序中,枚举类型经常被用于定义一些固定的值,例如订单状态、用户角色等。然而,在使用枚举类型时,需要注意一些坑,否则可能会出现一些...

    hibernate映射枚举类型

    这个注解有两个可选的枚举值:`EnumType.ORDINAL`和`EnumType.STRING`。 - `EnumType.ORDINAL`:默认方式,按照枚举实例在枚举类中的位置(索引)作为数据库中的整数值。这种方式简单但不安全,因为改变枚举顺序...

    理解java枚举类型

    在Java中,枚举可以使用`enum`关键字来声明。基本的枚举定义格式如下: ```java public enum Color { RED, GREEN, BLUE } ``` 上述代码定义了一个名为`Color`的枚举,包含了三个常量:RED、GREEN和BLUE。枚举成员...

    三分钟快速掌握Java中枚举(enum)

    6. `&lt;T extends Enum&lt;T&gt;&gt; T valueOf(Class&lt;T&gt; enumType, String name)`:根据枚举类型和名称获取对应的枚举值。 枚举的应用场景: 1. 替代一组常量,例如定义颜色: ```java public enum Color { RED, GREEN, ...

    mybatis入门实战之枚举类型

    首先,我们要明白枚举(Enum)在Java中的作用。枚举是一种特殊的类,用于定义一组相关的常量,这些常量通常代表某种特定的分类或状态。在MyBatis中,枚举可以用于表示数据库字段的值,如性别、状态等。这样不仅增强...

    Java2 Tutorial-5.0

    for (Type item : collection) { // code to operate on item } ``` 此外,Java 5.0引入了泛型,这是一种模板机制,允许在类、接口和方法中使用类型参数,增强了代码的类型安全性和可读性。例如,一个泛型列表可以...

    Java中EnumMap代替序数索引代码详解

    在Java编程中,枚举(Enum)是一种强大的工具,它允许开发者定义一组预定义的常量。然而,当处理枚举类型时,有些开发者倾向于使用枚举的`ordinal()`方法来作为索引,但这并不总是最佳实践。`ordinal()`方法返回枚举...

    graphql-java是GraphQL的一个Java实现

    1. **类型系统**: graphql-java支持GraphQL的完整类型系统,包括Object、Interface、Union、Scalar、Enum、Input Object和List/NonNull组合。 2. **代码第一(Code-First)**: 开发者可以使用Java类定义Schema,...

    Hibernate中映射枚举类型

    Hibernate提供了一个专门用于枚举类型映射的类`org.hibernate.type.EnumType`。通过这个类,我们可以选择将枚举实例的`name`或者`ordinal`映射到数据库。具体的配置是在Hibernate的映射文件(通常是.hbm.xml文件)中...

    Java 7编程高级进阶

    9. **改进的枚举类型(Enum Set和Enum Map)** Java 7增强了枚举类型,提供了`EnumSet`和`EnumMap`,它们针对枚举类型进行了优化,提供了高效且内存友好的数据结构。 10. **并发更新集合(Concurrent Collections ...

    java5班强化练习

    public enum Color { RED, GREEN, BLUE; } ``` 你可以像访问对象一样访问枚举常量,并且它们可以拥有方法和字段。 另外,自动装箱和拆箱也是Java 5的新特性。这意味着我们可以直接在基本类型和对应的包装器类型...

    java 国际象棋棋盘

    public enum Type {KING, QUEEN, BISHOP, ROOK, KNIGHT, PAWN} public Piece(int x, int y, Type type) { this.x = x; this.y = y; this.type = type; } // 棋子移动的抽象方法 public abstract boolean ...

    有撤销功能的计算器(java)

    enum Operation { ADD, SUBTRACT, MULTIPLY, DIVIDE } ``` 然后,我们需要在每次执行操作后更新计算器的当前值,并将操作记录保存到栈中。例如,`add()`方法可能看起来像这样: ```java public void add(int ...

    Java JDK 5.0学习笔记

    public enum Color { RED, GREEN, BLUE } ``` 三、自动装箱与拆箱(Autoboxing and Unboxing) Java 5.0引入了自动装箱和拆箱特性,使得基本类型和其对应的包装类之间可以无缝转换。例如,int和Integer之间的转换...

    Java语言基础入门教程 Java实训教程 10.枚举与泛型 共27页.pptx

    - 枚举是一种引用类型,因为它隐式继承自`java.lang.Enum`类。 - 枚举是JDK 5.0之后新增的特性,使用并不频繁。 - 枚举值是常量,具有默认的`public static final`修饰符。 - 使用枚举类型的枚举变量赋值时可以直接...

    springboot项目中枚举类型的最佳实践

    当然,也可以使用`@Enumerated(EnumType.STRING)`保存枚举的名称,但请注意这可能会增加数据库存储空间。 此外,还可以创建一个枚举类型转换器,以便在数据库查询时能够根据枚举名称进行匹配: ```java public ...

Global site tag (gtag.js) - Google Analytics