您的位置:首页 > 编程语言 > Java开发

thingking in java test5.9练习(19)(20)(21)(22)

2016-09-05 11:29 405 查看
练习(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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java