亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

java-枚舉

original 2016-11-05 14:08:21 404
abstrait:枚舉類型是一種能讓變量成為一個常量集合的特殊數(shù)據(jù)類型,該變量必須等于預先定義的常量集合中的一個。枚舉類型的定義  枚舉類型的定義與類的定義類似,使用enum關鍵詞聲明,可以有方法和字段,創(chuàng)建枚舉類時,編譯器會自動給枚舉類加上一些特殊的方法,如values方法能夠返回枚舉中包含的所有值所組成的數(shù)組,順序和他們定義的順序一致。  所有的枚舉都隱含地繼承java.lang.Enum類

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

枚舉類型的定義

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

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

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

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

//此處注意關鍵詞為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) {//此處為主方法,運行該程序將會有輸出,傳入在地球的重力為參數(shù),輸出其他星球的重力
        if (args.length != 1) {//傳入主方法的參數(shù)必須為一個字符串并且格式如下
            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


Notes de version

Entrées populaires