黑马程序员技术交流社区
标题:
关于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是八种基本数据类型之一,当然不能直接返回;
而 基本数据类型--转换--字符串有两种方式:
第一种就是 " "+基本数据类型值
public String toString()
{
double area=r*r*Math.PI;
return" "+area;
}
复制代码
第二种就是 String中的静态方法valueOf();
public String toString()
{
double area=r*r*Math.PI;
return String.valueOf(area);
}
复制代码
作者:
卢泽
时间:
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