关于Java中的toString()方法。
学习Java快一年了,这些天拿起以前的书看看,突然发现这个toString()方法以前没有研究过。toString方法是Java方法中的一个模版。我来写段代码:publi...
学习Java快一年了,这些天拿起以前的书看看,突然发现这个toString()方法以前没有研究过。toString方法是Java方法中的一个模版。我来写段代码:public class Test{ public String toString(){ return "这是一个方法"; }}然后编写main方法,实例化这个对象,并输出这句话 public static void main(String[] args){ Test t = new Test(); System.out.print(t)}就是这里我很郁闷,为什么直接打印t就相当于调用toString()方法呢。如果我的类中有很多方法,那该怎么办。Java的高手们请指教一下。
展开
2013-09-13
展开全部
Test t = new Test();System.out.print(t);你最然是直接打印t,没写别的,但是System.out.的print方法,你把t传给这个方法,这个方法内部是自动调用t.toString的,这回明白了吧?而且你现在是在Test重写了toString方法,toString方法是所有类的父类Object类的方法,所以我说你重写了,所以内部就执行你自己的这个方法了,否则就调用你从Object继承下来的toString方法
2013-09-13
展开全部
在Java中,只有这个方法有这个特性,那就是当进行编译器看到编程者试图把该对象进行字符串操作时,就调用该方法。
比如System.out.print();
还有"12345" + xxx
这都会调用对象的toString()方法。
在一个类里面,有一些特殊的方法要特别注意,比如
equals()
hashCode()
toString()
clone()
具体怎么用过你可以参考相应的参考书。
推荐你学习《Java编程思想》
比如System.out.print();
还有"12345" + xxx
这都会调用对象的toString()方法。
在一个类里面,有一些特殊的方法要特别注意,比如
equals()
hashCode()
toString()
clone()
具体怎么用过你可以参考相应的参考书。
推荐你学习《Java编程思想》
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13
展开全部
当你纳闷的时候就应该找源码来看看,别把sun公司提供的源码当摆设。Sysout.out是一个PrintStream对象,print(println同理)方法有N个重载,其中一个是print(Objcet obj)。public void print(char c) {
write(String.valueOf(c));
}没toString方法是吧,别急继续往里走,看String.valueIOf(Object obj)方法。public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}看到toString了吧。这就是System.out.print的实现过程。注意,在传的参数不是String的时候,会调用String.value的各种重载把Long、Double等类型的对象转成String。在参数是String的时候,就不会这么麻烦,而是直接write了。
write(String.valueOf(c));
}没toString方法是吧,别急继续往里走,看String.valueIOf(Object obj)方法。public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}看到toString了吧。这就是System.out.print的实现过程。注意,在传的参数不是String的时候,会调用String.value的各种重载把Long、Double等类型的对象转成String。在参数是String的时候,就不会这么麻烦,而是直接write了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13
展开全部
如果类有很多方法,该怎么办?你想干什么,把类里的方法打印出来?还是干什么??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询