jasmine667 2010-11-08 12:55
浏览 195
已采纳

请帮我看看这个java小程序的运行结果为什么如此奇怪

为什么这个程序不能显示出Dog[]数组中每个对象的名字?以下是Dog_Ruff.java文件的全部内容:
public class Dog_Ruff{
String name;
public static void main (String[] args){

//创建Dog对象
Dog dog1=new Dog();
dog1.bark();
dog1.name="Bart";

//创建Dog数组
Dog[] myDogs=new Dog[3];

//关门放狗
myDogs[0]=new Dog();
myDogs[1]=new Dog();
myDogs[2]=dog1;

//通过数组引用存取Dog
myDogs[0].name="Fred";
myDogs[1].name="Marge";

//myDog[2]的名字是?
System.out.print("last dog's name is ");
System.out.println(myDogs[2].name);

//逐个对Dog执行bark()
int x=0;
while(x<myDogs.length){
myDogs[x].bark();
x=x+1;
}}

public void bark(){
System.out.print(name);
System.out.println(" says Ruff!");
}
public void eat(){}
public void chaseCat(){}
}

我想要的结果见图3,而图4是上面程序运行的结果!
图3
[img]http://dl.iteye.com/upload/attachment/344756/cd9133c3-40a8-3428-848a-266dd33f4092.png[/img]
图4

[img]http://dl.iteye.com/upload/attachment/344757/f8c04353-012d-3aa4-9885-bd86138ddee5.png[/img]

  • 写回答

4条回答 默认 最新

  • ethenjean 2010-11-08 15:19
    关注

    看来你还是有点乱啊,根本没明白错误的根源,建议你不要光跑程序,多看看java基础类的书吧。建议看Thinking in Java。
    首先文件名必须和包含main方法的class名称相同,因为你要运行程序的时候是从main开始运行的。
    而类的方法调用是用类的实例名加"."加方法名来完成的,类似上述程序中,mydog[0].bark(), 其中mydog[0]就是一个Dog类的实例。
    一般情况下对象的类(Dog)和可运行程序(DogTestDrive)都是分开的,可以是两个java文件,当然也可以写在一个文件里。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置