本帖最后由 陈振兴 于 2012-9-17 11:18 编辑
toString方法是父类Object的方法,返回值String,所有继承与Object的对象都有这个方法。
针对你的问题:
迭代集合中的无素的时候为什么总是打印出的是一堆地址?
你发现了没,为什么写成Objct ojb = it.next();有的时候是子类(Person p = (Person)it.next()),还需要强制转型(就是向下转型,把父类转换为子类,子类对自己的方法进行操作的),这个明白了,那么,就是知道了,你输出System.out.print(obj)就相当于做了obj.toString方法,这也就是有时子类覆盖父类对象方法时,自己会写如:return name+" "+age,就是这个意思了。
而不写的话,就是你所指的一堆地址,放在堆内存里的,他只能取出地址1a2b3c4a等等,所以会一般写程序的时候会让你覆盖Ojbect中的toString()方法,这样就是你取到的name+age组合了一个对象,不然就是他们两加起来的地址了。
总而言之,toString方法什么时候用,看是不是对象,一般是对抽象出来的对象来做这个的,因为要返回客户端输入的值。
|