導航:首頁 > 編程語言 > javainstanceof翻譯

javainstanceof翻譯

發布時間:2023-02-13 18:50:23

Ⅰ 在java程序中instanceof是什麼意思

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

//計算燃氣賬單

}

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

Ⅱ instanceof的用法,要詳細的

instanceof屬於java關鍵字之一,instanceof 嚴格來說是Java中的一個雙目運算符,用來測試一個對象是否為一個類的實例,用法為:boolean result = obj instanceof Class

其中 obj 為一個對象,Class 表示一個類或者一個介面,當 obj 為 Class 的對象,或者是其直接或間接子類,或者是其介面的實現類,結果result 都返回 true,否則返回false。

注意:編譯器會檢查 obj 是否能轉換成右邊的class類型,如果不能轉換則直接報錯,如果不能確定類型,則通過編譯,具體看運行時定。


(2)javainstanceof翻譯擴展閱讀

obj 必須為引用類型,不能是基本類型。instanceof 運算符只能用作對象的判斷。在JavaSE規范中對 instanceof 運算符的規定就是:如果 obj 為 null,那麼將返回 false。

知道Java分為兩種數據類型,一種是基本數據類型,有八個分別是 byte short int long float double char boolean,一種是引用類型,包括類,介面,數組等等。

而Java中還有一種特殊的 null 類型,該類型沒有名字,所以不可能聲明為 null 類型的變數或者轉換為 null 類型,null 引用是 null 類型表達式唯一可能的值,null 引用也可以轉換為任意引用類型。不需要對 null 類型有多深刻的了解,只需要知道 null 是可以成為任意引用類型的特殊符號。

Ⅲ java 編程instanceof 操作符

instanceof前面的引用和後面的類型之間至少要存在可能的繼承關系,也就是後面的類型應該和前面的引用類型一致或者是其子類。否則的話,instanceof絕無可能成立,也就是在編譯時就可以判斷這里結果一定是false了,也就沒有必要等到運行時再做這個instanceof運算了。因此,前後類型無關的instanceof運算在Java中是不允許的。

Ⅳ java 中 instanceof 怎麼理解,能否舉個例子,看了書還是有點模糊

instanceof 類似一個符號一樣,類似+號,-號,=號這種的,你可以這樣理解的

舉個例子哈,假如現在我有兩個父類,Person類和Animal類,現在有以下關系
Student extends Person(學生肯定是一個人,所以學生類繼承人類)
Dog extends Animal(狗肯定是動物,所以狗類繼承動物類)

所以現在我new一個Student對象小明和一個Dog對象旺財
Student student= new Student("小明");
Dog dog = new Dog("旺財");

你看+號,1+2表示是前者1和後者2相加是吧,返回一個數字
而instanceof 表示,前者對象是否是後者對象的一個實例,返回true或false,好,現在以上例子來說
student instanceof Student // return true
小明肯定是學生類的一個實例
student instanceof Person // return true
這也是true,因為小明是一個學生,他也是一個人啊,所以小明肯定是人的一個實例
dog instanceof Person // return false
這就是false了,因為旺財是一條狗,不是人,所以它不是人的一個實例,所以返回false

總結:instanceof多用在多態的使用中用於判斷當前類是哪些父類的子類

Ⅳ java 中的 instanceof 是什麼意思

A.instanceof(B);
就是A對象是否為B類的實例,如果是返回true,否則返回false;

Ⅵ java中instanceof是什麼意思

instanceof用來判斷內存中實際對象屬於那個類的,例如A nstanceof B,就是判斷A是不是B類型.

Ⅶ java中instanceof的用法

類型不兼容的情況下不能直接使用instanceof來進行判斷,如果這兩個類型是基本數據類型可以使用a.getClass().equals(B.class)(其中a是基本數據類型A的一個變數,相當於你這里的s,B是你想要比較的那個數據類型,這里相當於Boolean);如果這兩個類型是你自己創建的普通類,則可以讓他倆繼承一個共同的類,或者實現同一個介面。你這個屬於第一種情況,程序如下:

publicclassJudgeType{
publicstaticvoidmain(String[]args){
Strings="true";
Booleanb=true;

System.out.println(s.getClass().equals(Boolean.class));//輸出為false
}
}

再舉一個第二種的情況,程序如下:

publicclassTest{
publicstaticvoidmain(String[]args){
Personp=newTeacher();//使用多態

booleanb=pinstanceofStudent;
System.out.println(b);//輸出為false
}
}

classPerson{

}

classStudentextendsPerson{

}

classTeacherextendsPerson{

}

Ⅷ java基礎知識中,instanceof的用法,麻煩具體說明一下

Java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。
用法:
result = object instanceof class
參數:
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
說明:
如果 object 是 class 的一個實例,則 instanceof 運算符返回 true。如果 object 不是指定類的一個實例,或者 object 是 null,則返回 false。

例子如下:

package com.instanceoftest;

interface A{}
class B implements A{

}
class C extends B {

}

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

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

System.out.println("/ninstanceoftest test case 2: ------------------");
a=new B();
b=new B();

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

res = a instanceof B;
System.out.println("a instanceof B: " + res);
res = b instanceof A;
System.out.println("b instanceof A: " + res);

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

System.out.println("/ninstanceoftest test case 3: ------------------");
B b2=(C)new C();

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

res = b2 instanceof B;
System.out.println("b2 instanceof B: " + res);

res = b2 instanceof C;
System.out.println("b2 instanceof C: " + res);
}
}

/*
result:

instanceoftest test case 1: ------------------
a instanceof A: false
b instanceof B: false
instanceoftest test case 2: ------------------
a instanceof A: true
a instanceof B: true
b instanceof A: true
b instanceof B: true
instanceoftest test case 3: ------------------
b2 instanceof A: true
b2 instanceof B: true
b2 instanceof C: true

*/

望採納,謝謝。

Ⅸ 「instanceof」是什麼意思

instance of...的意思是「...的實例」

造句:

Ⅹ Java中A instanceof B是什麼意思

Java中A instanceof B是用來判斷內存中實際對象A是不是B類型。

出現這種情況經常是需要強制轉換的時候

class Dog extends Animal

譬如dog定義了自己的方法wangwang

Animal anAnimal = new Dog();

此時不能直接調用anAnimal.wangwang方法

但是可以

if( anAnimal instanceof Dog){

Dog dog = (Dog)anAnimal;

dog.wangwang就可以調用了

}

閱讀全文

與javainstanceof翻譯相關的資料

熱點內容
剛復制的文件找不到怎麼辦 瀏覽:724
試運行適用於哪些體系文件 瀏覽:987
ghost文件復制很慢 瀏覽:967
傑德原車導航升級 瀏覽:240
編程dest是什麼意思 瀏覽:935
linux埠鏡像 瀏覽:820
iphone5屏幕清塵 瀏覽:157
機頂盒密碼怎麼改 瀏覽:672
w7系統下載32位教程 瀏覽:618
pcb文件包括哪些內容 瀏覽:598
g00文件 瀏覽:607
用bat程序刪除程序 瀏覽:516
dnf鬼泣90版本打安圖恩 瀏覽:668
245倒角編程怎麼計算 瀏覽:599
可以買生活用品的app有哪些 瀏覽:175
cad在c盤產生的文件夾 瀏覽:541
聯想手機解鎖工具 瀏覽:696
瑞銀3887win10 瀏覽:833
學網路編程哪個好 瀏覽:805
手機vmos導入的文件在哪裡 瀏覽:115

友情鏈接