关于JAVA数组打印值的简单问题,望大家指教 ,谢谢!

class students
{public static void main{string[] args}
Student[] ss=new Student[]{new Student

("zhangsan",18),new Student("lisi",20)}
for (int i=0;i<ss.length;i++)
{system.out.println(ss[i]);}//1
}
class Student
{int num;
String name;
Student(int num, String name)
{ this.num=num;
this.name=name;
}
public String toString()
{
return "number="+num+","+name="+name;}
}

我想问的是,在1句打印数组的时候,我个人觉得数组里存是的对象的引用,或者说地址,应该打印的数组的值是地址,但是TOSTRING()RETURN返回的是字符串,这句的作用就是让数组打印这句话,那么原来不是存的是地址吗,应该怎样理解?

System.out.println();方法 去打印的话先去掉toString()方法.如果没有重写Object的toString()这时打印出来的是地址.但是你这里重写了这个方法.自然就会得到你return的值.如果不重写的话打印的是地址了.而你的数组中保存的应该是地址引用.当你有toString()方法时自动去调用显示return的字符串..没有这个方法就是显示地址位置了..

不知道我说的罗嗦不...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-19
数组里面是存放的对象的引用,也就是地址,但是为什么不是打印地址呢.因为Student重写了父类的toString的方法,在JAVA中,所有的类的父类都是Object类,他的toString方法就是打印对象地址的,如果你想按照自己的要求输出的话,你必须重写这个方法!
相似回答