老师能按照这个点评改一下测试类吗?
点评:
【测试类】
1、为了体现多态,应该先声明一个接口的引用,如:IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);
最后act方法的调用写在switch结构的外面,即actor.act();
从上述的流程上看,通过接口的引用指向了子类的对象,最后去调用act()方法,因为actor引用指向的对象不同,调用act()方法就会输出不同的结果。这就是多态的体现。
2、提示是否观看表演,当输入0或1以外的数字时,应该一直输入,直到正确为止,思路如下:
定义一个boolean值,初始值为true
使用while循环,当boolean值为true时,执行如下操作:
1)输出提示信息是否继续观看,并调用System.exit(0)退出程序
2)switch结构,当输入数据为1时,boolean值设置为false
当输入为0时,提示欢迎下次光临
当输入0/1以外的值时,提示输入不正确,重新输入
3、当提示选择表演者时,输入非1-5之间的数,应该提示请输入1-5的数字。建议在case5后添加default用来提示。
测试类代码:
package com.imooc.test;
import java.util.Scanner;
import com.imooc.animals.*;
public class Test {
public void notice() {
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、小丑 **********");
}
public static void main(String[] args) {
IAct one=new Bear("Bill",1);
IAct two=new Lion("Lain",2,"公","灰色");
IAct three=new Monkey("Tom",1,"金丝猴");
IAct four=new Parrot("Rose",1,"牡丹鹦鹉");
IAct five=new Clown("Kahle",5);
Test test=new Test();
Scanner sc=new Scanner(System.in);
while(true) {
test.notice();
int n=sc.nextInt();
switch(n) {
case 1:
one.act();
System.out.println();
System.out.println("********是否继续观看(1/0)********");
int n1=sc.nextInt();
if(n1==1) {
continue;
}else if(n1==0){
System.out.println("********欢迎下次光临!********");
System.exit(0);
}
break;
case 2:
two.act();
System.out.println();
System.out.println("********是否继续观看(1/0)********");
int n2=sc.nextInt();
if(n2==1) {
continue;
}else if(n2==0){
System.out.println("********欢迎下次光临!********");
System.exit(0);
}
break;
case 3:
three.act();
System.out.println();
System.out.println("********是否继续观看(1/0)********");
int n3=sc.nextInt();
if(n3==1) {
continue;
}else if(n3==0){
System.out.println("********欢迎下次光临!********");
System.exit(0);
}
break;
case 4:
four.act();
System.out.println();
System.out.println("********是否继续观看(1/0)********");
int n4=sc.nextInt();
if(n4==1) {
continue;
}else if(n4==0){
System.out.println("********欢迎下次光临!********");
System.exit(0);
}
break;
case 5:
five.act();
System.out.println();
System.out.println("********是否继续观看(1/0)********");
int n5=sc.nextInt();
if(n5==1) {
continue;
}else if(n5==0){
System.out.println("********欢迎下次光临!********");
System.exit(0);
}
break;
}
}
}
}
正在回答
同学你好,建议同学先按照老师的点评,先尝试自己修改下代码哦~,将修改后的代码,可以贴出来,老师帮同学检查,不懂地方也可以提出来哦~
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星