循环调用

循环调用

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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