“+”的使用规则?

jery2487 2010-09-14 04:50:30
System.out.print("i="+i)
符号"+"的使用规则是什么?
...全文
205 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
魔芋红茶 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 pywepe 的回复:]

引用 1 楼 clariones 的回复:

+操作符只被String重载了,所以+是一个二元操作符,两边可以是 String和基本数值类型
需要考虑的就是类型提升顺序。


重载?
[/Quote]
一般来说,java作为面向对象语言不会出现c++中的operator+这种重载,但+应该算是个特例吧,毕竟每次连接字符串都调用String.conn会疯的。。。这个不必深究,会用就行,学java不需要理解运算符重载,那个是c++的产物。
魔芋红茶 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jery2487 的回复:]

很有可能是5楼说的第三种情况
可为什么a+b+c变成b+c+a会出现不一样的情况呢?
[/Quote]
+的执行顺序是从左往右的,a+b,结果必然是字符串test12,"test12"+c结果必然是字符串“test1213”
b+c,结果是int25,25+“test”结果是字符串25test
参见java相关类型转换规则。
pywepe 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 clariones 的回复:]

+操作符只被String重载了,所以+是一个二元操作符,两边可以是 String和基本数值类型
需要考虑的就是类型提升顺序。
[/Quote]

重载?
e9876 2010-09-15
  • 打赏
  • 举报
回复
如何重载操作符的?
24K純帥 2010-09-15
  • 打赏
  • 举报
回复
连接字符串,输出i=值
Dyijun 2010-09-15
  • 打赏
  • 举报
回复
不错。。。
lost_guy_in_scut 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 boyone2009 的回复:]
+ 有对数字的加操作, 也有String类型数据的链接。 但当String 和是数字连接时位置很关键:
1. String a = "test";
int b = 12;
int c = 13;
System.out.println(a + b + c);
结果是test1213.

2. String a = "test";
int b = 12;
int ……
[/Quote]
恩恩。
bekeer 2010-09-15
  • 打赏
  • 举报
回复
建议多看书 不懂了再问 自己能解决是最好不过的了
marqio 2010-09-14
  • 打赏
  • 举报
回复
"+"被重载了,貌似这是Java里唯一的操作符重载,如果前后是数字就执行相加,如有一个为字符串就是重载了,直接连接就是了,被自动转型了。
snaillxc 2010-09-14
  • 打赏
  • 举报
回复
连接字符串 可以借鉴一下5楼所说的。。
铁匠梁老师 2010-09-14
  • 打赏
  • 举报
回复
java对 + 符号会自动重载
jery2487 2010-09-14
  • 打赏
  • 举报
回复
很有可能是5楼说的第三种情况
可为什么a+b+c变成b+c+a会出现不一样的情况呢?
无伤 2010-09-14
  • 打赏
  • 举报
回复
+ 有对数字的加操作, 也有String类型数据的链接。 但当String 和是数字连接时位置很关键:
1. String a = "test";
int b = 12;
int c = 13;
System.out.println(a + b + c);
结果是test1213.

2. String a = "test";
int b = 12;
int c = 13;
System.out.println(b + c + a);
结果是25a
jixian3204 2010-09-14
  • 打赏
  • 举报
回复
2楼说的是对的
jixian3204 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 alushuai159 的回复:]

最基本有两种用法:1:连接字符串;2:运算符。
这里就是连接字符串的用法
[/Quote]
楼上,说的那是隐式自动类型转换,不算连字符的功能
WANGYQ_412 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hope0612 的回复:]
"+"这个运算符我觉得有三个用法:
1、可以表示数值的相加

2、可以表示字符串的连接
如:"666"+"fgs"结果就为"666fgs"

3、可以把非字符串的转换成字符串
如:3.5+"1"结果就为"3.51"

这样讲不知道算不算清楚,呵呵
[/Quote]

楼主可以借鉴1
Hope0612 2010-09-14
  • 打赏
  • 举报
回复
"+"这个运算符我觉得有三个用法:
1、可以表示数值的相加

2、可以表示字符串的连接
如:"666"+"fgs"结果就为"666fgs"

3、可以把非字符串的转换成字符串
如:3.5+"1"结果就为"3.51"

这样讲不知道算不算清楚,呵呵
gujinf2008 2010-09-14
  • 打赏
  • 举报
回复
这里是连接字符串
mouer 2010-09-14
  • 打赏
  • 举报
回复
我个人理解,有2中情况吧,
1。前数字,后数字,如1+1
2。前字符串,后对象(需要重写对象的toString方法),如 String a = ""+1;
clariones 2010-09-14
  • 打赏
  • 举报
回复
+操作符只被String重载了,所以+是一个二元操作符,两边可以是 String和基本数值类型
需要考虑的就是类型提升顺序。
加载更多回复(1)

62,615

社区成员

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

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