用this调用另一个构造函数的问题?请指教

ifconfig1024 2005-11-15 02:19:23
public class E10_ThisConstructorCall {
public E10_ThisConstructorCall(String s) {
System.out.println("s = " + s);
}
public E10_ThisConstructorCall(int i) {
this("i="+i);
}


public static void main(String args[]) {
new E10_ThisConstructorCall("String call");
new E10_ThisConstructorCall(47);
}
}

是不是 this("i="+i)中的i会由int转换成string类型?

为什么 this("i="+i)的结果 ; 会等于 s= i = 47 呢?

...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ifconfig1024 2005-11-15
  • 打赏
  • 举报
回复
多谢各位指点,我明白了 ~~~~~~~~~~~~~~~~~~~~~~~~`
Mikey2006 2005-11-15
  • 打赏
  • 举报
回复
经过jbulider环境调式发现:
this("s"+i);
的确是先把它转换成字符串了,因为在java语言里,字符串的"+"运算符都是把它们转换成字符串,相当于一个连接,你用对象试试,会是null.呵呵...
所以再次调用上一层的构造函数所以结果就是这样罗....
xuelong_zl 2005-11-15
  • 打赏
  • 举报
回复
this("i="+i);它将参数变为String "i=47",然后这个this调用相当于
public E10_ThisConstructorCall("i=47")所以就得到的最后的结果 了。。。。。。
jimshen 2005-11-15
  • 打赏
  • 举报
回复
+ 在其中一个操作数为字符串时是字符串连接运算符
asphebby 2005-11-15
  • 打赏
  • 举报
回复
i自动转换成字符串
asphebby 2005-11-15
  • 打赏
  • 举报
回复
结果:
s=String call
s=i=47
i thdd df ;lsdkfj;sdkjf

62,629

社区成员

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

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