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

java-枚舉

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

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

枚舉類型的定義

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

  所有的枚舉都隱含地繼承java.lang.Enum類,因?yàn)閖ava中類只能繼承一個(gè)父類,所以枚舉類型不能繼承其他的類。

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

以下為一個(gè)關(guān)于太陽系行星信息枚舉的定義:

//此處注意關(guān)鍵詞為enum而不是class
public enum Planet {
//此處定義八個(gè)常量,最后一個(gè)常量后面要跟一個(gè)分號(hào)
    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) {//構(gòu)造器
        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) {//此處為主方法,運(yùn)行該程序?qū)?huì)有輸出,傳入在地球的重力為參數(shù),輸出其他星球的重力
        if (args.length != 1) {//傳入主方法的參數(shù)必須為一個(gè)字符串并且格式如下
            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


發(fā)布手記

熱門詞條