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

專注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 運算符的相關知識!


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲最大看欧美片网站 | 亚洲另类自拍丝袜第1页 | 欧美午夜性刺激在线观看免费 | 日韩伦理在线 | 成人免费视频观看 | 在线观看黄色小视频 | 国产精品无圣光一区二区 | 天天狠天天操 | 日日日射射射 | 欧美一区二区久久精品 | 免费黄在线看 | 一道本在线视频 | 国产精品suv一区二区 | 国产精品麻豆久久久 | 日韩一本 | 婷婷六月丁香色婷婷网 | 亚洲国产精久久小蝌蚪 | 黑人与中国女一级毛片不卡 | www.精品| 天堂网在线看 | 日韩中文字幕在线观看 | 在线观看国产精成人品 | 三黄日本三级在线观看 | 欧洲成人在线视频 | 一级黄色片一级黄色片 | 日本不卡一区二区三区在线观看 | 丝袜制服中文字幕 | 国产无套粉嫩白浆在线精品 | 中文日韩字幕一区在线观看 | 日韩精品高清自在线 | 日韩福利视频高清免费看 | 色网站视频 | 精品国产免费人成高清 | 欧美色片在线观看 | 韩国伦理剧免费观看 | 一级国产视频 | 一级黄色片免费的 | 大片毛片女女女女女女女 | 性夜黄a爽爽免费视频国产 性夜黄 a 爽免费看 | 香港三级日本三级a视频 | 久久天天躁狠狠躁夜夜2020一 |