7-2作业批复问题!

7-2作业批复问题!

讲师点评:上次作业的建议已经全部修改完毕,但怎么把实例化动物的代码放循环内部了,这样不又跟上次作业中的问题3)一样了嘛。还得用50行,63行那些代码。这样虽然是多写了多次.act();但效率提高了呀,你得先以效率为第一优先考虑的问题。其次才是代码量。作业中如果有疑问,可在问答区进行提问,我们的助教老师会帮您答疑解惑,祝学习愉快!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static void main(String[] args) {
        // TODO Auto-generated method stub
        IACT iact=null;
        Menu test = new Menu();
         
        Scanner Scanner = new Scanner(System.in);
        while (true) {
            test.menu();
            int shou = Scanner.nextInt();
            switch (shou) {
            case 1:               
                iact=new Bear("Bill"1);
                break;
            case 2:
                iact=new Lion("Lain"2"灰色""公狮");
                break;
            case 3:
                iact=new Monkey("Tom"1"金丝猴");
                break;
            case 4:
                iact=new Parrot("Rose"1"牡丹鹦鹉");
                break;
            case 5:
                iact=new Clown("Kahle"5"身穿五彩服装,头上戴着彩色帽子,脸上画着夸张的彩妆");
                break;
            default:
                System.out.println("输入信息不正确,请重新输入");
                break;
            }          
            iact.act();
            test.prompt();
        }
 
    }

怎么把实例化动物的代码放循环外,执行??这里不知道怎弄。。


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 慕粉无名而来 2017-08-27 10:16:31

 iact.act(); 老师的批复中这一个会在输入错误的时候出现最后一个信息的调用,改了if(shou>0&shou<=5){iact.act();}



好帮手慕珊 2017-08-27 09:52:04

你好!你这样写是可以的,我们会向批阅的老师反馈一下这个问题,看看他当时是不是有其他想法,确认好了再给你回复。祝学习愉快!

  • 提问者 慕粉无名而来 #1
    不把实例化动物的代码放循环内部,最后想了一下好像只能这样做,但不清楚这样是不是也属于多态的形式。 public static void main(String[] args) { // TODO Auto-generated method stub Menu test = new Menu(); IACT[] iact=new IACT[5];//多态方法 iact[0]=new Bear("Bill", 1); iact[1]=new Lion("Lain", 2, "灰色", "公狮"); iact[2]=new Monkey("Tom", 1, "金丝猴"); iact[3]=new Parrot("Rose", 1, "牡丹鹦鹉"); iact[4]=new Clown("Kahle", 5, "身穿五彩服装,头上戴着彩色帽子,脸上画着夸张的彩妆"); Scanner Scanner = new Scanner(System.in); while (true) { test.menu(); int shou = Scanner.nextInt(); switch (shou) { case 1: iact[0].act(); break; case 2: iact[1].act(); break; case 3: iact[2].act(); break; case 4: iact[3].act(); break; case 5: iact[4].act(); break; default: System.out.println("输入信息不正确,请重新输入"); break; } test.prompt(); } }
    2017-08-27 10:17:36
  • 好帮手慕雪 回复 提问者 慕粉无名而来 #2
    嗯,这样写没问题。这样就不会重复执行new对象了。
    2017-08-28 10:30:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码