天天看點

thingking in java test5.9練習(19)(20)(21)(22)

練習(19):寫一個類,它接受一個可變參數的String數組。驗證你可以向該方法傳遞一個用逗号分割的String清單,或是一個String[].

public class test5_8_19 {
    public static void main(String[] args){
        String[] strs = new String[]{"1","2","3","4","5"};
        canChange.f(strs);
    }
}

class canChange{
    static void f(String...strs){
        for (String str :
                strs) {
            System.out.println(str);
        }
    }
}
           

可變參數清單就是某個方法的某個參數數量可變,最小可以為0,也就是沒有,最大沒有限制。這個參數類型可以是object類,也可以是各種基本類型,也可以是包裝類型。

練習(20):建立一個使用可變參數清單而不是普通的main()文法的main()。列印所産生的args數組的是以元素,并用各種不同數量的指令行參數來測試它。

普通的mian()文法裡面是String[] args

可變參數清單是String…args

題目裡說的用不同數量的指令行參數來測試,意思就是,當你使用指令行編譯時,在xxx.java 後面跟上一些參數,這些參數會在main()運作時随args傳入。

使用IDE達成輸入指令行參數的方法前面提到過了,請參考 http://blog.csdn.net/qq_35396447/article/details/52051790

public static void main(String...args){
        for (String str :
                args) {
            System.out.println(str);
        }
    }
           

控制台輸出:

hello

world

!

hi

java

!

練習(21):建立一個enum,它包含紙币中最小面值的6種類型。通過value()循環并列印每一個值及其ordinal()。

ordinal()方法是編譯器為枚舉類型建立的,用來表示類型中某個常量的聲明順序,通俗的講就是第幾個。

static values()方法是按照常量順序,生成由這些常量構成的數組。

public class test5_9_21 {
    public static void main(String[] args){
        for (Money money :
                Money.values()) {
            System.out.println(money + ",ordinal " + money.ordinal());
        }
    }
}

enum Money{
    YIYUAN,WUYUAN,SHIYUAN,ERSHIYUAN,WUSHIYUAN,YIBAIYUAN
}
           

練習(22):在前面的例子中,為enum寫一個switch語句,對于每個case,輸出待定貨币的描述。

public class test5_9_21 {
    public static void main(String[] args){
//        for (Money money :
//                Money.values()) {
//            System.out.println(money + ",ordinal " + money.ordinal());
//        }

        MoneyValue value = new MoneyValue(Money.WUSHIYUAN);
        value.howMuch();
        MoneyValue value1 = new MoneyValue(Money.YIYUAN);
        value1.howMuch();
    }
}

enum Money{
    YIYUAN,WUYUAN,SHIYUAN,ERSHIYUAN,WUSHIYUAN,YIBAIYUAN
}

class MoneyValue{
    Money money ;//枚舉類的引用
    public MoneyValue(Money money){
        this.money = money;//枚舉類的初始化,注意枚舉類不能用new關鍵字,用法類似static常量,直接=Money.xxx即可
    }
    public void howMuch() {
        switch (money) {
            case YIYUAN:
                System.out.println("一塊錢");
                break;
            case WUYUAN:
                System.out.println("五塊錢");
                break;
            case SHIYUAN:
                System.out.println("十塊錢");
                break;
            case ERSHIYUAN:
                System.out.println("二十塊錢");
                break;
            case WUSHIYUAN:
                System.out.println("五十塊錢");
                break;
            case YIBAIYUAN:
                System.out.println("一百塊錢");
                break;
        }
    }
}