当前位置: 首页 > 面试题库 >

Java中的运算符重载

苏高旻
2023-03-14
问题内容

请告诉我Java是否可以重载运算符?如果可以在Java中的任何地方使用它,请告诉我。


问题答案:

不,Java不支持用户定义的运算符重载。Java唯一接近“自定义”运算符重载的方面是对字符串+的处理,这将导致常量的编译时串联或使用StringBuilder / StringBuffer的执行时串联。但是,您无法定义自己的操作符,它们的操作方式相同。

对于确实支持运算符重载的类Java(和基于JVM)的语言,您可以查看Kotlin或Groovy。另外,您可能会发现Java编译器插件解决方案很幸运。



 类似资料:
  • 我了解到Java不允许程序员重载操作符。我还了解到是java中唯一重载的运算符, 但是, 运算符将整数操作数作为按位运算符处理。

  • 可能重复: 之间的差异 有人能解释一下

  • 问题内容: 是否可以在Python中重载运算符?如果是这样,可以定义新的运算符,例如和吗? 问题答案: 正如其他答案所提到的,您确实可以重载运算符(通过在正在编写的类中定义特殊方法,即名称以两个下划线开头和结尾的方法)。所有的细节都在这里。 要完成对您问题的回答:您不能定义新的运算符;但是它不是一个新的运算符,它是一个现有的运算符,并且通过在类中定义method来使其过载。 作为历史记录,这在C

  • 问题内容: 任何人都可以通过一些示例解释在Java中使用^运算符吗? 问题答案: 与大多数语言中的^相同,只是XOR。

  • 问题内容: 考虑以下代码: 到底为什么呢? 我会这样计算: 但这是3。我不明白为什么在预先增加到时第二次不进行增加。 问题答案: 让我们首先关注看起来异常的行: 此处的运算符是(分配),(一元加号)和(预递增)。没有操作员。Java将其解释为两个运算符:和。添加适当的空格会更清楚: 现在让我们分析处理过程: 第一次迭代:和是。 预先增加到,这就是的结果。一元不执行任何操作,而是分配给。然后出现迭代

  • 问题内容: 有人可以向我解释为什么可以这样做: 没有操作符重载怎么办(在这种情况下为“ =“) 我来自C ++背景,因此可以解释… 问题答案: 在这种情况下,没有过载。与不同的Java片段是的定义-Java编译器将“”中的任何内容转换为,因此在您的示例中也是一个简单的赋值。在中,编译器将“”转换为,因此需要从转换为。