程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java instanceof症結字的的進一步懂得

Java instanceof症結字的的進一步懂得

編輯:關於JAVA

Java instanceof症結字的的進一步懂得。本站提示廣大學習愛好者:(Java instanceof症結字的的進一步懂得)文章只能為提供參考,不一定能成為您想要的結果。以下是Java instanceof症結字的的進一步懂得正文


instanceof是Java的一個二元操作符,和==,>,<是統一類東東。因為它是由字母構成的,所以也是Java的保存症結字。它的感化是測試它右邊的對象能否是它左邊的類的實例,前往boolean類型的數據。舉個例子:

    String s = "I AM an Object!";
    boolean isObject = s instanceof Object;
 

我們聲清楚明了一個String對象援用,指向一個String對象,然後用instancof來測試它所指向的對象能否是Object類的一個實例,明顯,這是真的,所以前往true,也就是isObject的值為True。
instanceof有一些用途。好比我們寫了一個處置賬單的體系,個中有如許三個類:

    public class Bill {//省略細節}
    public class PhoneBill extends Bill {//省略細節}
    public class GasBill extends Bill {//省略細節}
 

在處置法式裡有一個辦法,接收一個Bill類型的對象,盤算金額。假定兩種賬單盤算辦法分歧,而傳入的Bill對象能夠是兩種中的任何一種,所以要用instanceof來斷定:

public double calculate(Bill bill) {
    if (bill instanceof PhoneBill) {
        //盤算德律風賬單
    }
    if (bill instanceof GasBill) {
        //盤算燃氣賬單
    }
    ...
}

如許便可以用一個辦法處置兩種子類。

但是,這類做法平日被以為是沒有好好應用面向對象中的多態性。其實下面的功效請求用辦法重載完整可以完成,這是面向對象釀成應有的做法,防止回到構造化編程形式。只需供給兩個名字和前往值都雷同,接收參數類型分歧的辦法便可以了:

public double calculate(PhoneBill bill) {
    //盤算德律風賬單
}
public double calculate(GasBill bill) {
    //盤算燃氣賬單
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved