黑马程序员技术交流社区

标题: public String toString()这个方法有什么作用? [打印本页]

作者: 宿万涛    时间: 2011-11-1 22:03
标题: public String toString()这个方法有什么作用?
每次看到这行代码感觉怪怪的,这行代码有什么作用?什么时候调用呢?我从表面上理解就是传进来一个参数,这个方法把传进来的参数转换成String类型的,不知道此理解有没有错误?求解答
作者: 何周舟    时间: 2011-11-1 22:06
不是直接toString();?
作者: 沙铁健    时间: 2011-11-1 22:13
本帖最后由 沙铁健 于 2011-11-1 22:22 编辑

重写 toString()方法

例如 你 用foreach遍历 一个数组
  1.         for (student student : stu) {
  2.                         System.out.println(student);
  3.                 }
复制代码
这样输出的  直接输出时会输出该对象的哈希值,格式为:类名@对象的哈希值。
如果在student类里加上
  1.         public String toString() {
  2.                 return "姓名:" + sName ;
  3.         }
复制代码
例如我这里就一个字段sName 从写下 toString()
这样执行foreach就会输出

姓名:xxxx
姓名:xxxx
姓名:xxxx
姓名:xxxx
....
foreach就是加强for  习惯这么写.......
作者: 秦冲    时间: 2011-11-1 22:16
因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。这个方法通常是为了方便输出,比如System.out.println(xx),自动调用xx的toString()方法。
作者: 宿万涛    时间: 2011-11-1 22:34
感激二楼 三楼  把我的思路打开了{:soso_e113:}
作者: 吉许    时间: 2011-11-2 09:04
@Override

toString是Object中的方法,因为Object是所有类的超类.这时你自定义的类一定要覆盖的方法,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2