練習(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;
}
}
}