首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >String类如何覆盖+运算符?

String类如何覆盖+运算符?
EN

Stack Overflow用户
提问于 2012-07-10 15:21:02
回答 3查看 32.9K关注 0票数 133

为什么在Java中,当String是一个类时,您可以使用+运算符添加String?在String.java代码中,我没有找到这个操作符的任何实现。这个概念是否违背了面向对象的思想?

EN

回答 3

Stack Overflow用户

发布于 2012-07-10 15:25:40

Java语言为字符串连接运算符(+)和将其他对象转换为字符串提供了特殊支持。字符串连接是通过StringBuilder(或StringBuffer)类及其append方法实现的。

票数 4
EN

Stack Overflow用户

发布于 2012-07-10 22:39:41

当应用于String时,+运算符的含义由语言定义,每个人都已经写过了。既然您觉得这还不够令人信服,请考虑以下内容:

整数、浮点数和双精度数都有不同的二进制表示,因此,就位操作而言,添加两个整数与添加两个浮点数是不同的操作:对于整数,您可以逐位相加,进位并检查溢出;对于浮点数,您必须分别处理尾数和指数。

因此,原则上,“添加”取决于被“添加”的对象的性质。Java为字符串以及整型和浮点型(长整型、双精度型等)定义了它。

票数 4
EN

Stack Overflow用户

发布于 2012-07-10 15:25:03

在编译时,+运算符通常由StringBuilder替换。有关该问题的更多详细信息,请查看此answer

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11408427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档