我了解到Java并没有为程序员提供过载操作的条件。我还了解到,+是java中唯一超载的操作符,
但,
运算符& | ^以位运算符的形式处理积分操作数。
运算符& | ^将布尔操作数作为逻辑运算符处理。
我的问题是:
& ^ |超载了吗?发布于 2015-06-12 09:50:32
因为我们倾向于把数字看作只是数字,所以我们通常不会识别算术运算符被重载,尽管整数除法与浮点数除法有很大的不同。
所以从技术上讲,所有的算术运算符都是过载的。
确定什么是重载的最简单的方法是想象一下,您必须调用Operators.plus()而不是+操作符。当该方法需要重载以处理不同的输入时,您的操作符也需要重载。
因此,例如,当您在字符串连接意义中使用+时,这将等同于Operators.plus(Object first, Object second),而整数加法将由Operators.plus(int first, int second)处理,依此类推。
(然而,作为一种思想实验,如果我们采用“放松”(且不正确)的观点,即所有数字都只是数字,那么我们就可以说,位运算符对于所有序数类型的行为都是相同的,前提是我们将boolean看作一个有点长的数字。)
P.s.:(从实际角度来看)唯一需要记住的是,|和&和boolean运算符不会短路,而||和&&会短路。我个人不会过于担心术语,只要人们理解你的意思。由于您不能在Java中重载操作符(作为用户),所以它不像在您可以使用的语言中那么重要。
https://stackoverflow.com/questions/30800022
复制相似问题