A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李杰鹏 初级黑马   /  2012-12-22 13:30  /  1327 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李杰鹏 于 2012-12-23 10:55 编辑

这个程序一直不太理解..
public class TestToString {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println("d:=" + d);
}
}

class Dog {
public String toString() {
return "I'm a cool dog!";
}
}

知道的麻烦帮我一下..谢谢..

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
public String toString() {
return "I'm a cool dog!";
}
这段小程序的意思是调用String的toString 方法,返回一个字符串
回复 使用道具 举报
所有对象都有这个方法,因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法回答补充:写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用例子1:
public class A{   
public String toString()
{return "this is A";}
}
如果某个方法里面有如下句子:A obj=new A();System.out.println(obj);会得到输出:this is A
例子2:public class A{   
public String getString()
{return "this is A";}//toString改个名字试试看
}
A obj=new A();System.out.println(obj);会得到输出:xxxx@xxxxxxx的类名加地址形式System.out.println(obj.getString());
会得到输出:this is A看出区别了吗,toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
public class TestToString {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println("d:=" + d);
}
}

class Dog {
public String toString() {
return "I'm a cool dog!";
}
}
在这里写toString方法是为了复写Object类中的toString方法,
因为调用toString方法返回的是一种字符串表现形式,应是一个简明但易于读懂的信息表达式。
而Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。
对我们来说这样一个字符串没有多大的意义,所以我们要复写toString方法,建议所有子类都重写此方法。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
System.out.println("d:=" + d);这句话实际上是这么写的System.out.println("d:=" + d.toString());
在原先的Dog类中你写了一个toString方法,其实就是覆写了父类Object中的toString方法。
关键就是这个了,其他的你应该明白。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
......恩..知道了.谢谢..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马