Java里面两个重载的问题?

hsf1002 2013-09-23 09:25:49
1:Java不支持运算符重载,但是像这种表达式s=s1+"James, Bond",
(1):是本身针对String重载了=,而不允许用户自定义运算符重载吗?
(2):还是调用了toString()呢?
2:看书说只有静态函数,常函数和构造函数是静态绑定,难道重载函数是动态绑定的么?
C++函数重载可是静态联编啊
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2013-09-27
  • 打赏
  • 举报
回复
方法实参很可能在运行期才最终确定,所以动态绑定
huntor 2013-09-27
  • 打赏
  • 举报
回复
引用 4 楼 nd707355117 的回复:
[quote=引用 1 楼 ceeyangwen 的回复:] java中字符串相加其实是调用了StringBuilder的append()方法,实际上s = s1 + “James,Bond”可以转换为s = new StringBuilder(s1).append(“James,Bond”).toString();
应该是StringBuffer ,StringBuild是C#里面的[/quote] 以前是StringBuffer,现在是StringBuilder
guan_tu 2013-09-27
  • 打赏
  • 举报
回复
引用 1 楼 ceeyangwen 的回复:
java中字符串相加其实是调用了StringBuilder的append()方法,实际上s = s1 + “James,Bond”可以转换为s = new StringBuilder(s1).append(“James,Bond”).toString();
应该是StringBuffer ,StringBuild是C#里面的
hsf1002 2013-09-24
  • 打赏
  • 举报
回复
还是不太明白
S117 2013-09-23
  • 打赏
  • 举报
回复
用于String的+和+=是java中仅有的两个重载过的操作符,java是不允许程序员重载任何操作符的!toString()方法是在将一个对象放到字符串上下文时调用的! java中除了static方法和final方法,其他所有方法都是后期绑定的!
GavinCee 2013-09-23
  • 打赏
  • 举报
回复
java中字符串相加其实是调用了StringBuilder的append()方法,实际上s = s1 + “James,Bond”可以转换为s = new StringBuilder(s1).append(“James,Bond”).toString();

62,615

社区成员

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

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