程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java-枚舉,java枚舉類型的用法

java-枚舉,java枚舉類型的用法

編輯:JAVA綜合教程

java-枚舉,java枚舉類型的用法


枚舉類型是一種能讓變量成為一個常量集合的特殊數據類型,該變量必須等於預先定義的常量集合中的一個。

枚舉類型的定義

  枚舉類型的定義與類的定義類似,使用enum關鍵詞聲明,可以有方法和字段,創建枚舉類時,編譯器會自動給枚舉類加上一些特殊的方法,如values方法能夠返回枚舉中包含的所有值所組成的數組,順序和他們定義的順序一致。

  所有的枚舉都隱含地繼承java.lang.Enum類,因為java中類只能繼承一個父類,所以枚舉類型不能繼承其他的類。

  注意:枚舉構造器的可視范圍修飾詞必須為private或者沒有(程序包內可見),枚舉中的常量是自動創建的,而不能自行調用枚舉的構造器。

以下為一個關於太陽系行星信息枚舉的定義:

//此處注意關鍵詞為enum而不是class
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;   // 單位為千米
    private final double radius; // 單位為米
    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();//此處可以直接用EARTH也可用Planet.EARTH
        for (Planet p : Planet.values())
           System.out.printf("Your weight on %s is %f%n",
                             p, p.surfaceWeight(mass));
    }
}

 

以上代碼輸出為

$ 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved