JAVA新手学习上的问题 麻烦前辈解答下

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:44:31
class Dog {
String name;
}
public class DogTestDrive {
public static void main (String [] args) {

Dog dog1 = new Dog();
dog1.bark();
dog1.name = "Bart";

Dog[] myDogs = new Dog[3];
myDogs[0] = new Dog();
myDogs[1] = new Dog();
myDogs[2] = dog1;

myDogs[0].name = "Fred";
myDogs[1].name = "Marge";

System.out.print("last dog's name is");
System.out.println(myDogs[2].name);

int x = 0;
while (x < myDogs.length ) {
myDogs[x].bark();
x = x + 1;
}
}

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

编译时有3个错误

DogTestDrive.java:9: 找不到符号
符号: 方法 bark()
位置: 类 Dog
dog1.bark();
^
DogTestDrive.java:25: 找

dog1.bark(); 调用的是class Dog中的bark方法,不是class DogTestDrive中的,因为dog1是Dog类的对象。应该这样写:
class Dog {
String name;
public void bark() {
System.out.println( name + " says Ruff!") ;
}
public void eat() { }
public void chaseCat() { }
}

}

你的Dog里面根本没有bark()方法 当然会出错
让爱火候DogTestDrive也没有name这个字段 肯定会出错

加上就醒了