欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中Java instanceof關(guān)鍵字全面解析

 更新時間:2016年07月13日 11:33:21   作者:2778085001  
instanceof關(guān)鍵字用于判斷一個引用類型變量所指向的對象是否是一個類(或接口、抽象類、父類)的實例.這篇文章主要介紹了Android中Java instanceof關(guān)鍵字全面解析的相關(guān)資料,需要的朋友可以參考下

instanceof關(guān)鍵字用于判斷一個引用類型變量所指向的對象是否是一個類(或接口、抽象類、父類)的實例。

instanceof是Java的一個二元操作符,和==,>,<是同一類東東。由于它是由字母組成的,所以也是Java的保留關(guān)鍵字。它的作用是測試它左邊的對象是否是它右邊的類的實例,返回boolean類型的數(shù)據(jù)。舉個例子:

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

  我們聲明了一個String對象引用,指向一個String對象,然后用instancof來測試它所指向的對象是否是Object類的一個實例,顯然,這是真的,所以返回true,也就是isObject的值為True。

  instanceof有一些用處。比如我們寫了一個處理賬單的系統(tǒng),其中有這樣三個類:

public class Bill {//省略細(xì)節(jié)}
  public class PhoneBill extends Bill {//省略細(xì)節(jié)}
  public class GasBill extends Bill {//省略細(xì)節(jié)}

  在處理程序里有一個方法,接受一個Bill類型的對象,計算金額。假設(shè)兩種賬單計算方法不同,而傳入的Bill對象可能是兩種中的任何一種,所以要用instanceof來判斷:

 public double calculate(Bill bill) {
  if (bill instanceof PhoneBill) {
  //計算電話賬單
  }
  if (bill instanceof GasBill) {
  //計算燃?xì)赓~單
  }
  ...
  }

  這樣就可以用一個方法處理兩種子類。

  然而,這種做法通常被認(rèn)為是沒有好好利用面向?qū)ο笾械亩鄳B(tài)性。其實上面的功能要求用方法重載完全可以實現(xiàn),這是面向?qū)ο笞兂蓱?yīng)有的做法,避免回到結(jié)構(gòu)化編程模式。只要提供兩個名字和返回值都相同,接受參數(shù)類型不同的方法就可以了:

public double calculate(PhoneBill bill) {
  //計算電話賬單
  }
  public double calculate(GasBill bill) {
  //計算燃?xì)赓~單
  }

  所以,使用instanceof在絕大多數(shù)情況下并不是推薦的做法,應(yīng)當(dāng)好好利用多態(tài)。

相關(guān)文章

  • Android入門之TextClock的使用教程

    Android入門之TextClock的使用教程

    TextClock是在Android 4.2(API 17)后推出的用來替代DigitalClock的一個控件。本文將為大家詳細(xì)說說TextClock的使用,感興趣的小伙伴可以了解一下
    2022-11-11
  • Android draw9patch 圖片制作與使用詳解

    Android draw9patch 圖片制作與使用詳解

    本文主要介紹Android draw9patch的圖片使用和制作,這里詳細(xì)說明如何操作,并幫大家整理了幾句口令,幫助大家記住,有興趣的小伙伴可以參考下
    2016-09-09
  • Android Studio格式化(Format)代碼快捷鍵介紹

    Android Studio格式化(Format)代碼快捷鍵介紹

    這篇文章主要介紹了Android Studio格式化(Format)代碼快捷鍵,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Android開發(fā)之圖形圖像與動畫(四)AnimationListener簡介

    Android開發(fā)之圖形圖像與動畫(四)AnimationListener簡介

    就像Button控件有監(jiān)聽器一樣,動畫效果也有監(jiān)聽器,只需要實現(xiàn)AnimationListener就可以實現(xiàn)對動畫效果的監(jiān)聽,感興趣的朋友可以了解下啊,希望本文對你有所幫助
    2013-01-01
  • Android判斷wifi是5G還是2.4G

    Android判斷wifi是5G還是2.4G

    這篇文章給大家分享android區(qū)分wifi是5G還是2.4G的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-12-12
  • Android實現(xiàn)動畫效果詳解

    Android實現(xiàn)動畫效果詳解

    這篇文章主要介紹了Android實現(xiàn)動畫效果詳解,目前Android平臺提供了Tween動畫和Frame動畫,實現(xiàn)這兩類動畫有兩種方式:一種使用XML文件(文件放在res/anim),一種直接代碼搞定,需要的朋友可以參考下
    2015-07-07
  • Android4.4+ 實現(xiàn)半透明狀態(tài)欄(Translucent Bars)

    Android4.4+ 實現(xiàn)半透明狀態(tài)欄(Translucent Bars)

    這篇文章主要為大家詳細(xì)介紹了Android4.4+ 實現(xiàn)半透明狀態(tài)欄,對狀態(tài)欄(Status Bar)和下方導(dǎo)航欄(Navigation Bar)進(jìn)行半透明處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android Studio導(dǎo)入項目非常慢的解決方法

    Android Studio導(dǎo)入項目非常慢的解決方法

    這篇文章主要為大家詳細(xì)介紹了Android Studio導(dǎo)入項目非常慢的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Kotlin封裝RecyclerView Adapter實例教程

    Kotlin封裝RecyclerView Adapter實例教程

    這篇文章主要給大家介紹了關(guān)于Kotlin封裝RecyclerView Adapter的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Kotlin函數(shù)使用示例教程

    Kotlin函數(shù)使用示例教程

    這篇文章主要為大家介紹了Kotlin函數(shù)的使用示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評論