请老师检查
来源:7-2 作业题
Ctrlzhao
2019-10-18 22:05:40
package com.circus.test;
import java.util.Scanner;
import com.circus.Bear;
import com.circus.Clown;
import com.circus.IAct;
import com.circus.Lion;
import com.circus.Monkey;
import com.circus.Parrot;
public class Test {
public void displayMenu() {
System.out.println("**********欢迎来到辉夜大小姐的马戏团************");
System.out.println("************ 请选择表演者 *********");
System.out.println("************ 1、棕熊 ******************");
System.out.println("************ 2、狮子 ******************");
System.out.println("************ 3、猴子 ******************");
System.out.println("************ 4、鹦鹉 ******************");
System.out.println("************ 5、小丑 ******************");
System.out.println();
}
/*
* public static void main(String[] args) { // TODO Auto-generated method stub
* IAct one=new Bear("Bill",1); one.act();
* System.out.println("============================"); IAct two=new
* Lion("Lain",2,"公狮","灰色"); two.act();
* System.out.println("============================"); IAct three=new
* Monkey("Tom",1,"金丝猴"); three.act();
* System.out.println("============================"); IAct five=new
* Parrot("Rose",1,"牡丹鹦鹉"); five.act();
* System.out.println("============================"); IAct four=new
* Clown("Kahle",5); four.act(); }
*/
public static void main(String[] args) {
Test test = new Test();
Scanner sc = new Scanner(System.in);
int input;
test.displayMenu();
System.out.println("请输入数字 1 至 5 选择表演者!");
while (true) {
try{
input = sc.nextInt();
}catch(java.util.InputMismatchException e){
System.out.println("输入数据格式有误,不能有非数字!");
sc.next();
continue;
}
// Boolean(input>=1) {
switch (input) {
case 1:
IAct one = new Bear("Bill", 1);
one.act();
break;
case 2:
IAct two = new Lion("Lain", 2, "公狮", "灰色");
two.act();
break;
case 3:
IAct three = new Monkey("Tom", 1, "金丝猴");
three.act();
break;
case 4:
IAct five = new Parrot("Rose", 1, "牡丹鹦鹉");
five.act();
break;
case 5:
IAct four = new Clown("Kahle", 5);
four.act();
break;
default:
System.out.println("输入的数字有误,请重新输入!");
}
while (true) {
System.out.println();
System.out.println("***** 是否继续观看 (1/0) *****");
try {
input = sc.nextInt();
}catch(java.util.InputMismatchException e) {
System.out.println("输入数据格式有误,不能有非数字!");
sc.next();
continue;
}
if (input == 1) {
test.displayMenu();
break;
} else if (input == 0) {
System.out.println("退出马戏团!");
System.exit(0);
} else {
System.out.println("输入信息有误,请重新输入!!!");
}
}
}
}
}1回答
1、由于同学的代码不全,老师无法完全判断,这里老师根据同学已提供的代码提一些小建议:
为了体现多态,我们不用创建多个接口one ,two,three等,可以先声明一个接口的引用,如:IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);
case 2 后的代码为 :actor= new Lion("Lain", 2, "公狮", "灰色"); default的时候可以把actor再设置为null。
2、以上修改后,可以在switch结构的外边,判断当 actor!=null的时候,统一调用 actor.act() 就好了。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题