j**a string +

时间:2014.01.19 发布人:地瓜妹pig

j**a string +

已解决问题

谷歌地瓜妹pig用户在2014.01.19提交了关于“胡辣汤j**a string +”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-01T00:53:46。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:tsttw  

j**a是不支持运算符重载,这个也不算是运算符重载
当你的x是对象的时候,用x+“一个字符串”,那j**a会调用该对象的toString方法先转化为string再和顶映包便领未到字符串相加,这是Strin来自g与引用类型的转换。J**a中所有的对象都是从Object继承过来的,Object中有一个toString方法。这个方法是所有的对轮士象都可以转换成String和,如果想把自定义的类转换成String,最安全的做法是重写toStr问答ing方法。和基本类型一样如果对象前有String对象用+连接,对象就会隐式转换成String,这种情况实际上是乐主告需到后隐式调用了toString方法。例子就你上面那个例子。

+这个运算符需要前后两排则套个因子的类型一样运高频失组促听象才能相加

如果x是一个基本类型,那当运行+的时候会进行一定的类型转换(基本类型转换分为类型提升和强制转换)。
例如:
inta=100;
longb=a+100;//这个地方就用到了类型提升,a+100现货刑策改做介商色走灯从int提升到了long
a=(int)b;//这个地方用到了强制转换
强制类型转换在某种情况下会丢失精度,如:
byteb;
inta=200;
b=(byte)a;//虽加然这里用到了强制转换,但因为byte的范围是-127到127
//所以强制转换后宽度会被截短
在j**a中除了这些转换之外基本**类型还可以被隐式的转换成String,例如:System.out.print("转换"+100);//如果在**前面有字符串用+连接
//就会隐式的转换成String