循环调用

循环调用

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
public class Test {
 
    public static void main(String[] args) {
        Animal animal[]=new Animal[5];
        for(int i=0; i< animal.length; i++) {
            int n = (int)(Math.random() *3);
            switch (n) {
                case 0
                    animal[i]=new Cat(); 
                    break;
                case 1:
                    animal[i]=new Dog();
                    break;
                case 2:
                    animal[i]=new Sheep();
                    break;
            }
        for(Animal n=animal){
             switch (n) {
                case 0
                    Cat.cry();
                    break;
                case 1:
                    Dog.cry();
                    break;
                case 2:
                    Sheep.Cry();
                    break;
            }
    }
}
 
 
public class Animal {
     
    private String kind;
     
    public Animal(){
         
    }
    public Animal(String kind){
        this.setKind(kind);
    }
    public void setKind(String kind){
        this.kind=kind;
    }
    public String getKind(){
        return kind;
    }
    public void cry(){
         
    }
}
 
 
public class Cat extends Animal {
    //重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~”
     public void cry(){
         System.out.println("小猫的叫声:喵喵喵~~~");
     }
}
 
 
public class Dog extends Animal {
    //重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~”
    public void cry(){
         System.out.println("小狗的叫声:汪汪汪~~~");
     }
}
 
 
public class Sheep extends Animal {
     //重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~”
    public void cry(){
         System.out.println("小羊的叫声:咩咩咩~~~");
     }
}

https://img1.sycdn.imooc.com//climg/646449a609a90ba421981161.jpg这是哪里的问题呢

正在回答

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

1回答

同学你好,1、Test类中第一个循环没有成功闭合,建议同学添加对应的花括号(})

    https://img1.sycdn.imooc.com//climg/64644c8a09e6d31c08000446.jpg

2、第二个循环中出现多个语法错误问题。具体如下所示:

    https://img1.sycdn.imooc.com//climg/64644d9c09067ccd13280602.jpg

在第二个循环中直接调用cry()方法就可以了。修改后代码如下所示:

    https://img1.sycdn.imooc.com//climg/64644dde0988b9e807810786.jpg

3、优化代码,调用cry方法在一个循环就实现,不需要定义第二个循环。

    https://img1.sycdn.imooc.com//climg/64644e1b09ef3e6307890581.jpg

祝学习愉快!

  • qq_慕的地4190246 提问者 #1

    https://img1.sycdn.imooc.com//climg/64646d2409a539fb14690967.jpg这个n不是随机产生012中的一个数吗,怎么能直接用这个数字调用cry方法呢

    2023-05-17 14:00:10
  • 同学你好,1、n并不是随机数,此时是循环出的Animal对象(此时使用的是增强for循环,具体同学可以复习:https://class.imooc.com/lesson/2054#mid=48792  )。在同学代码中代表随机数的n是局部变量,只是在第一个for循环中使用。

    https://img1.sycdn.imooc.com//climg/646472900995a7f607070709.jpg

    2、第一个循环,根据数组长度循环五次,下标分别为0,1,2,3,4。在循环中先生成了随机数,根据随机数为数组下标为0,1,2,3,4进行赋值。如下所示:而在第二个循环中,就是将数组对应下标中的数据循环出并输出。

    https://img1.sycdn.imooc.com//climg/6464703f091ae00507070503.jpg

    祝学习愉快!

    2023-05-17 14:22:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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