簡體   English   中英

在Java中重載按位運算符

[英]Overloading bitwise operators in Java

我了解到Java並沒有為程序員提供過載操作員的能力。 我還了解到+是java中唯一重載的運算符,

但,

運營商& | ^作為按位運算符處理整數操作數。

運營商& | ^布爾操作數作為邏輯運算符。

我的問題:

  1. 我可以說運營商& ^ | 超負荷?

  2. 我的行話是否正確調用這些運算符作為積分操作數上的按位運算符和布爾操作數上的邏輯運算符?

因為我們傾向於將數字視為數字,所以我們常常不會認為算術運算符會過載,盡管明顯的事實是整數除法與浮點除法非常不同。

所以從技術上講,所有算術運算符都非常過載。

確定過載的最簡單方法是想象一下,您必須調用Operators.plus()而不是+運算Operators.plus() 當需要重載該方法來處理不同的輸入時,您的操作員也將如此。

因此,例如,當您在字符串連接意義上使用+時,這將等同於Operators.plus(Object first, Object second) ,而Operators.plus(int first, int second)將覆蓋整數加法,因此上。

(但是,作為一個思想實驗,如果我們采用所有數字都只是數字的“寬松”(和不正確)視圖,我們可以說按位運算符對所有序數類型的行為相同,前提是我們將boolean視為數字這有點長。)

Ps:唯一要記住的(從實際的角度來看)是| 和| & boolean運算符不會短路,而|| &&做。 只要人們理解你的意思,我個人就不會過分擔心術語。 因為無論如何你都不能在Java(作為用戶)中重載運算符,所以它不如你可以使用的語言那么重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM