class Soap
{
private String s;
Soap()
{
System.out.println("Soap()");
s=new String("yan zi jing");
}
public String toString()
{
return s;
}
}public class Bath
{
private String
s1=new String("wang jian bing"),
s2="wang jian bing",
s3,s4;
private Soap cas; //声明一个cas对象
private int i;
private float toy;
public Bath()
{
System.out.println("在Baath()之中");
s3=new String("Joy");
i=45;
toy=3.14f;
cas=new Soap();
}
public String toString ()
{
if(s4==null)
s4=new String("xuefei");
return
"s1= "+s1+"\n"+
"s2= "+s2+"\n"+
"s3= "+s3+"\n"+
"s4= "+s4+"\n"+
"i= "+i+"\n"+
"toy= "+toy+"\n"+
"cas= "+cas;
}
public static void main(String[] args)
{
Bath b=new Bath();
//b.toString();
System.out.println(b);
/**这一行System.out.println(b),我不明白是什么意思?
*他为什么可以调用Bath类中的toString()方法;
*而把System.out.println(b)屏蔽后,用b.toString()方法怎么不
*会输出return的结果呢?
*这两行的区别是什么呢?请你们帮我讲讲,谢谢!
*/
}
}
{
private String s;
Soap()
{
System.out.println("Soap()");
s=new String("yan zi jing");
}
public String toString()
{
return s;
}
}public class Bath
{
private String
s1=new String("wang jian bing"),
s2="wang jian bing",
s3,s4;
private Soap cas; //声明一个cas对象
private int i;
private float toy;
public Bath()
{
System.out.println("在Baath()之中");
s3=new String("Joy");
i=45;
toy=3.14f;
cas=new Soap();
}
public String toString ()
{
if(s4==null)
s4=new String("xuefei");
return
"s1= "+s1+"\n"+
"s2= "+s2+"\n"+
"s3= "+s3+"\n"+
"s4= "+s4+"\n"+
"i= "+i+"\n"+
"toy= "+toy+"\n"+
"cas= "+cas;
}
public static void main(String[] args)
{
Bath b=new Bath();
//b.toString();
System.out.println(b);
/**这一行System.out.println(b),我不明白是什么意思?
*他为什么可以调用Bath类中的toString()方法;
*而把System.out.println(b)屏蔽后,用b.toString()方法怎么不
*会输出return的结果呢?
*这两行的区别是什么呢?请你们帮我讲讲,谢谢!
*/
}
}
解决方案 »
- java.lang.ThreadGroup 线程组里的异常 如何打印出堆栈?
- 急,太奇怪的问题了
- 关于用jsp做聊天室,请大家给点好的意见
- 奇怪!1433端口就是不能侦听,办法用尽没辙了,求救大家!回复必有分
- 有没有什么方法把一张彩色图片,变成黑色图片.
- 关于StreamTokenizer的用法很迷惑呀,到底默认是用什么分割符?还有ordinaryChar的用法,急!
- 在Applet程序里怎么动态控制浏览器浏览的范围的大小,也就是改变高和宽,急!
- Eclipse
- 请问在Java里有没有 运算一个字符串的方法? 如vbscript的 eval("3+5*2") = 13
- 请问:用Jdbc-Odbc 访问Access数据库时,SQL查询语句的条件值不能用汉字怎么办?
- 望大家给指点一下吧
- 大家来看一个很有趣的现象
他建立了Bath的对象b
那么 b.toString()不就能调用了吗?
你把System.out.println(b)屏蔽后
只有b.toString()方法的返回值
System.out.println(b)是输出返回值啊我建议你先去看看JAVA基础
int i=2+3;
不会输出5一样,只执行操作,没有打印,屏幕上当然看不到结果.
如果想要调用toString()方法有输出结果的话,在实现的时候加上输出语句即可
但是那样是违反编程思想的,一般不那么干!
其实这段代码,讲的就是toString()方法的用法。正是基础。
楼主看的也正是基础。好象是THINKING IN JAVA 上的吧。
系统会自动匹配b的toString方法。
------ 以下是签名 ------
SoftDN.com, 提供免费的项目管理平台:SVN仓库、需求管理、BUG跟踪、任务管理、在线论坛、网站空间、项目存储及完整的备份等。欢迎网友光临建立项目,开创自己的梦想。
地址:http://www.softdn.com http://www.softdn.cn
toString()方法只是返回String类型对象
但是不会输出
需要借助System.out.println()方法来输出