请大神指教一下,这两个有什么区别?

weixin_37734910 2017-03-06 09:28:09
我是一名学生,因为刚接触JAVA没多久,所以对JAVA的理解也不是太到位,请大家不要吐糟我。
下面是两种交换值得JAVA程序,一个输出是System.out.println("显示a:"+a);跟system.out.println("显示b:"+b);一个是输出
system.out.printf("显示a"+a.tostring());跟System.out,println("显示b"+b.tostring());两个输出的结果都是相同的,我想知道加了.tostring()有什么用,请大神指教一下。
package swap;

public class swap {
public void swap(String a,String b)
{
String temp;
System.out.println("a显示:"+a);
System.out.println("b显示:"+b);
temp=a;a=b;b=temp;
System.out.println();
System.out.println("调用方法以后");
System.out.println("a显示:"+a);
System.out.println("b显示:"+b);
}
public static void main(String[] args)
{
String foo=new String("Mar1 2005 2:5:3");
String bar=new String("Jan 2004 12:2:2");
swap swapTime=new swap();
System.out.println("调用方法以前");
System.out.println("foo显示:"+foo);
System.out.println("bar显示:"+bar);
swapTime.swap(foo,bar);
System.out.println("foo显示:"+foo);
System.out.println("bar显示:"+bar);
}
}
这是加上.tostring()后的 :
package swap;

public class swap {
public void swap(String a,String b)
{
String temp;
System.out.println("a显示:"+a.toString ());
System.out.println("b显示:"+b.toString ());
temp=a;a=b;b=temp;
System.out.println();
System.out.println("调用方法以后");
System.out.println("a显示:"+a.toString ());
System.out.println("b显示:"+b.toString ());
}
public static void main(String[] args)
{
String foo=new String("Mar1 2005 2:5:3");
String bar=new String("Jan 2004 12:2:2");
swap swapTime=new swap();
System.out.println("调用方法以前");
System.out.println("foo显示:"+foo.toString ());
System.out.println("bar显示:"+bar.toString ());
swapTime.swap(foo,bar);
System.out.println("foo显示:"+foo.toString ());
System.out.println("bar显示:"+bar.toString ());
}
}
...全文
462 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
_long_ 2017-03-09
  • 打赏
  • 举报
回复
你定义temp,foo和bar用的都是String定义的,这是引用数据类型,相当于是个对象. 你打印的时候系统默认就是打印tostring方法,比如System.out.println("a显示:"+a);中的a就是系统默认调用的a.tostring().只是没有 显示出来而已.俩者是一样的.你只要记住,打印对象就是直接打印对象的tostring方法就可以了. String中有重写tostring方法,所以你看到的是俩者一样, 如果你用一个没重写tostring方法的对象,那么打印出来的就是该对象的地址值了,
ryuugu_rena 2017-03-08
  • 打赏
  • 举报
回复
toString就是以字符串的形式输出,如果是个对象,没重写toString的话就输出地址了。
China小嘿 2017-03-08
  • 打赏
  • 举报
回复
toString是继承Object的默认方法,意思是以字符串形式打印输出,函数入参就是String类型,你toString 和System.out.println()是一样的都是打印字符串
未来窥视者 2017-03-08
  • 打赏
  • 举报
回复
同意三楼的说法,另外补充一下,tostring()主要是为了得到字符串类型的结果
weixin_37734910 2017-03-08
  • 打赏
  • 举报
回复
引用 7 楼 沙子的回复:
打印一个对象的时候,默认是调用该对象的toString方法,如果该对象没有重写toString方法,则调用object的toString方法。 你上面是打印的对象是String,它有重写toString方法:
那里干嘛不是int类型。为什么是string,string有什么
沙子 2017-03-08
  • 打赏
  • 举报
回复
打印一个对象的时候,默认是调用该对象的toString方法,如果该对象没有重写toString方法,则调用object的toString方法。 你上面是打印的对象是String,它有重写toString方法:
weixin_37734910 2017-03-08
  • 打赏
  • 举报
回复
引用 3 楼 Menco0的回复:
以字符串string类型输出,你现在用本身这个a,b类型都是string所以输出并无区别,如果你把其他类型的tostring一下那将变成string类型,虽然输出无区别,但传参用的时候就发现出不一样了
string的作用的什么?引用任何类型吗?
菜 头 2017-03-07
  • 打赏
  • 举报
回复
以字符串string类型输出,你现在用本身这个a,b类型都是string所以输出并无区别,如果你把其他类型的tostring一下那将变成string类型,虽然输出无区别,但传参用的时候就发现出不一样了
xianwenwen 2017-03-07
  • 打赏
  • 举报
回复
String类型的toString()是一样的,但将来你学到类时使用toString时就不是你想的结果
qq_37789118 2017-03-06
  • 打赏
  • 举报
回复
两种结果一样 ,toString()是默认加的

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧