有一種說法「程序=數據結構+算法」。
而這是離不開運算符的。今天要聊的就是JAVA中的一個特殊的運算符instanceof。
instanceof運算符是用來判斷一個對象是否是指定類型的實例的。如果是指定類型的對象則返回true,否則返回false。
下面說說instanceof運算符的幾個場景的情況吧。
不能對基本數據類型進行instanceof
JAVA作為面向對象的一門語言,但是裡面的基本數據類型卻不是對象,更加不可能是指定類型的實例了,所以是不能使用instanceof這個運算符進行判斷的。驗證一下看看。
instanceof左側的對象是右側類型的對象或子類的對象
這個小標題可能比較拗口,比較繞。看看下面的代碼就好理解了。
這裡定義了一個Person類,一個集成了Person類的Student類。
然後實例化了一個Student對象。然後用instanceof運算符對這個對象進行判斷。
執行的結果兩個判斷都是true。因為這個對象student是一個Student類的對象,也是Person類的對象。
instanceof左側的對象是右側接口的實現類的對象
instanceof也可以用來判斷是不是某個接口的實現類的對象。上代碼驗證下。
運行結果就浪費大家流量展示了。結果為true。有興趣的朋友可以自己執行試試。
instanceof左側為null時運算結果恆為false
如果對象沒有實例化出來,對null進行判斷時,結果會是false。
不用運行,編輯器就已經告訴我們這個運算的表達式結果總是false。
今天的內容比較少,也比較簡單。
歡迎大家在評論區提出寶貴的一件建議。