黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 實例講解instance of 運算符用法

實例講解instance of 運算符用法

更新時間:2020-10-27 17:54:32 來源:動力節點 瀏覽1313次

instanceof 是 Java 語言中的一個二元操作符,和 = =、>、< 等是同一類元素。由于 instanceof 是由字母組成的,所以它也是Java的保留關鍵字。Java中 instance of 運算符用法是學習instance of 運算符的關鍵所在。


1.instanceof 的作用是測試它左邊的對象是否是它右邊類的實例,然后返回一個 boolean 類型的 instanceof。請看下面的代碼。

String s = "I AM an Object!";

boolean isObject = s instanceof Object;

上述代碼聲明了一個 String 型對象引用,指向一個 String 型對象,然后用 instanceof 來測試它所指向的對象是否是 Object 類的一個實例。因為這是真的,所以返回結果 true,也就是 isObject 的值為 true。

比如我們在編寫一個處理賬單系統時,其中有如下 3 個類。

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) {

//計算燃氣賬單

}

...

}

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


2.然而,這種做法通常被認為是沒有好好利用面向對象中的多態性。其實上面的功能要求用方法重載完全可以實現,這是面向對象變成應有的做法,避免回到結構化編程模式。只要提供兩個名字和返回值都相同,接受參數類型不同的方法就可以了:

public double calculate(PhoneBill bill) {

//計算電話賬單

}

public double calculate(GasBill bill) {

//計算燃氣賬單

}

所以,使用instanceof在絕大多數情況下并不是推薦的做法,應當好好利用多態。


3.同時也可以用instance of 來判斷某個對象是否是某個Class類的實例。

用法:

boolean result = object instanceof class

參數:

result :boolean類型。

object :必選項。任意對象表達式。

class:必選項。任意已定義的對象類。

說明:

如果該object 是該class的一個實例,那么返回true。如果該object 不是該class的一個實例,或者object是null,則返回false。

例子:

package com.instanceoftest;

interface A { }

class B implements A { } //B是A的實現

class C extends B { } //C繼承B

class D { }

class instanceoftest {

public static void main(String[] args) {

A a = null;

B b = null;

boolean res;

System.out.println("instanceoftest test case 1: ------------------");

res = a instanceof A;

System.out.println("a instanceof A: " + res); // a instanceof A:false

res = b instanceof B;

System.out.println("b instanceof B: " + res); // b instanceof B: false

System.out.println("\ninstanceoftest test case 2: ------------------");

a = new B();

b = new B();

res = a instanceof A;

System.out.println("a instanceof A: " + res); // a instanceof A:true

res = a instanceof B;

System.out.println("a instanceof B: " + res); // a instanceof B:true

res = b instanceof A;

System.out.println("b instanceof A: " + res); // b instanceof A:true

res = b instanceof B;

System.out.println("b instanceof B: " + res); // b instanceof B:true

System.out.println("\ninstanceoftest test case 3: ------------------");

B b2 = new C();

res = b2 instanceof A;

System.out.println("b2 instanceof A: " + res); // b2 instanceof A:true

res = b2 instanceof B;

System.out.println("b2 instanceof B: " + res); // b2 instanceof A:true

res = b2 instanceof C;

System.out.println("b2 instanceof C: " + res); // b2 instanceof A:true

System.out.println("\ninstanceoftest test case 4: ------------------");

D d = new D();

res = d instanceof A;

System.out.println("d instanceof A: " + res); // d instanceof A:false

res = d instanceof B;

System.out.println("d instanceof B: " + res); // d instanceof B:false

res = d instanceof C;

System.out.println("d instanceof C: " + res); // d instanceof C:false

res = d instanceof D;

System.out.println("d instanceof D: " + res); // d instanceof D:true

}

}


以上就是在Java語言中,instead of運算符的用法實例,我們可以仔細剖析,認真求證,學習其中的精髓。然后,結合本站的關系運算符教程里對instead of運算符的詳細講解,一定能夠完全掌握instead of 運算符的相關知識!


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 99成人免费视频 | 午夜色图 | 综合色影院 | 三级在线观看视频 | 欧美在线观看免费一区视频 | 一级做a爰片性色毛片视频图片 | 欧美黄色一级视频 | 美女视频永久黄网站在线观看 | 综合精品在线 | 五月婷婷伊人 | 免费国产成人手机在线观看 | 黄大片在线观看 | 青青青在线视频播放 | 好男人在线社区www在线视频一 | 日本免费高清视频二区 | 性色毛片免费视频 | 夜夜添夜夜添夜夜摸夜夜摸 | 午夜欧美福利视频 | 免费成年网 | 成人午夜大片 | 在线观看欧美亚洲 | 两性色午夜视频自由成熟的性 | 天天拍夜夜添久久精品免费 | 可以免费看黄的网址 | 免费国产不卡午夜福在线 | 天天操天天射天天操 | 久久网址| 久久精品国产亚洲欧美 | 最近的中文字幕免费视频1 最近的中文字幕大全免费版 | 国产免费怡红院视频 | 最近日本中文字幕免费完整 | 中国野外性xxxx | 国产专区青青草原亚洲 | 国产已拍视频 | 天天碰免费视频 | 日本特级黄录像片 | 99手机在线视频 | 亚洲丁香色婷婷综合欲色啪 | 国产第四页 | 日韩毛片网站 | 丝袜美女足交 |