黑马程序员技术交流社区

标题: 关于toString方法 [打印本页]

作者: che201311    时间: 2013-11-23 21:35
标题: 关于toString方法
public class Circle {
double r;
public Circle(double r)
{
this.r=r;
}
public String toString()
{
double area=r*r*Math.PI;
return" "+area;
}

}
返回一个值时为什么不能写  return area;   要加上" "+area

????
作者: 心的方向    时间: 2013-11-23 21:40
因为你的toString()方法有返回值(String类型),而你的area是double类型的,“” +就是把后面的也变成字符串
作者: 樊志伟    时间: 2013-11-23 22:15
toString()方法的返回值是String类型的,而area是double类型的,所以不能直接返回area,需要将写成""+area
作者: 1014917278    时间: 2013-11-23 22:33
area是double类型  area+""就转成了String类型,这在打印时比较常见
作者: 忘记了    时间: 2013-11-24 12:55
定义了返回值类型是String,而area是double类型。
“ ”+area  中,+是连接符,将后面area类型转成字符串型然后连接起来
作者: 胡乃锋    时间: 2013-11-24 13:14
因为 toString 返回的是String 字符串类型,double是八种基本数据类型之一,当然不能直接返回;
而 基本数据类型--转换--字符串有两种方式:
第一种就是  " "+基本数据类型值
  1. public String toString()
  2. {
  3. double area=r*r*Math.PI;
  4. return" "+area;
  5. }
复制代码
第二种就是  String中的静态方法valueOf();
  1. public String toString()
  2. {
  3. double area=r*r*Math.PI;
  4. return String.valueOf(area);
  5. }
复制代码

作者: 卢泽    时间: 2013-11-24 15:01
对于这个问题,我觉得应该想清楚两个,定义的参数是什么类型?要返回的类型是什么?明白这两个,这个问题就解决了。
作者: 木木赤赤    时间: 2013-12-27 13:34
首先,public String toString()该方法的返回值是String类型的,而你定义的变量area是基本数据类型double,如果想要返回你想要的结果area,你必须将area变成String类型的,
return " "+area;这句代码中" "连接上area后,area类型被提升至String。





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