楼主请听我慢慢道来:
楼主的打印结果应该是类似:[com.hunnu.day3.stu@da4b71, com.hunnu.day3.stu@18f1d7e, com.hunnu.day3.stu@d9660d, com.hunnu.day3.stu@bb0d0d, com.hunnu.day3.stu@55e55f]
这样,我们不难看到[]中的5个元素应该是与5个stu对象相关的5个值,到底是什么呢?通过观察Object的toString()方法- public String toString() {
- return getClass().getName() + "@" + Integer.toHexString(hashCode());
- }
复制代码 可以看出打印出来的[]中的内容是分别调用各个stu对象的toString()方法返回的字符串。这样一来,问题就变得简单了,为了打印出stu的相关信息,我们只需在stu类中重写toString()方法即可- @Override
- public String toString() {
- return "[m_name=" + m_name + ", m_age=" + m_age + ", m_score="
- + m_score + "]";
- }
复制代码 运行之后打印出来的结果就该类似这样:[[m_name=li0, m_age=20, m_score=80], [m_name=li1, m_age=20, m_score=81], [m_name=li2, m_age=20, m_score=82], [m_name=li3, m_age=20, m_score=83], [m_name=li4, m_age=20, m_score=84]]。
相信到这里楼主应该能够理解了。实际上很多情况,对象的toString()方法都会默认的被调用,比如打印对象的时候,与字符串相加的时候等。
说到最后,还是要说一下,类名的第一个字母要大写呀,这是编程的好习惯,要养成才好。 |