package dogBark;public class Dog {
String name;
public void bark(int i){
System.out.println(dogs[i].name+" says Ruff!");
}
}
class DogText{
public static void main(String[] args) {
Dog d1 = new Dog();
//d1.name = "xiaobai";
//d1.bark();
d1.name = "xiaobai";
Dog[] dogs=new Dog[3];
dogs[0] = new Dog();
dogs[1] = new Dog();
dogs[0].name = "xiaohei";
dogs[1].name = "xiaohua";
dogs[2]=d1;
int i;
for(i=0;i<3;i++)
{
dogs[i].bark(i);
}
}
}比如我改成了这样 System.out.println(dogs[i].name+" says Ruff!"); 这句话,反而会报错了,是为什么呢。不能传递参数进去吗,还是。我是才学JAVA不久,很多基础不清楚
String name;
public void bark(int i){
System.out.println(dogs[i].name+" says Ruff!");
}
}
class DogText{
public static void main(String[] args) {
Dog d1 = new Dog();
//d1.name = "xiaobai";
//d1.bark();
d1.name = "xiaobai";
Dog[] dogs=new Dog[3];
dogs[0] = new Dog();
dogs[1] = new Dog();
dogs[0].name = "xiaohei";
dogs[1].name = "xiaohua";
dogs[2]=d1;
int i;
for(i=0;i<3;i++)
{
dogs[i].bark(i);
}
}
}比如我改成了这样 System.out.println(dogs[i].name+" says Ruff!"); 这句话,反而会报错了,是为什么呢。不能传递参数进去吗,还是。我是才学JAVA不久,很多基础不清楚
System.out.println(name+" says Ruff!");
}
这是一个Dog累中的一个方法,当这个方法被调用的时候,就会打印出信息,
好了,现在来看看是哪里调用的这个方法:
dogs[0] = new Dog();
dogs[1] = new Dog();
dogs[0].name = "xiaohei";
dogs[1].name = "xiaohua";
dogs[2]=d1;
int i;
for(i=0;i<3;i++)
{
dogs[i].bark(i);
}for循环中写得很明显嘛 在调用bark方法的时候,就已经指定了是dogs[i]在调用bark方法了.. 楼主应该搞清楚, 面向对象编程中,类和实例的关系。。
类是程序员对一类事物的抽象, 它表示一类有共性的事务,比如黄狗,花狗,都是狗, 但狗并不能代表某一只具体的狗
实例就是具体的某一只狗了, 你可以通过类的new方法来创建一直具体的狗