CodeGym /หลักสูตร /จาวาคอร์ /ตัวดำเนินการอินสแตนซ์

ตัวดำเนินการอินสแตนซ์

จาวาคอร์
ระดับ, บทเรียน
มีอยู่

"สวัสดี Amigo! คุณได้พบกับ ตัวดำเนินการ อินสแตนซ์ออฟแล้ว วันนี้ฉันจะบอกคุณว่าจะใช้ได้อย่างไรและที่ใดอินสแตนซ์ของเป็นโอเปอเรเตอร์ที่ง่ายและมีประสิทธิภาพมาก"

"นั่นฟังดูเหมือนโฆษณา!"

"มันง่ายมาก มันใช้แบบนี้«object» instanceof «class» . "

ตรวจสอบว่าวัตถุเป็นอินสแตนซ์ของคลาสใดคลาสหนึ่งหรือไม่ มันง่ายกว่าการอธิบาย ดูตัวอย่างนี้:

รหัส คำอธิบาย
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isIntจะเป็นจริง วัตถุที่อ้างอิงโดยตัวแปร o เป็นอินสแตน ซ์ของ คลาส จำนวนเต็ม
Object o = "Mama";
boolean isInt = o instanceof Integer;
isIntจะเป็นเท็จ วัตถุที่อ้างอิงโดยตัวแปร o ไม่ใช่อินส แตนซ์ของ คลาส จำนวนเต็ม มันเป็นวัตถุสตริง
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFISจะเป็นจริง วัตถุที่อ้างอิงโดยตัวแปร o เป็นอินสแตนซ์ของคลาสFileInputStream

"ใช่ มันง่ายมาก"

"โอเปอเรเตอร์นี้ยังอธิบายถึงการสืบทอด ลองดูสิ"

รหัส คำอธิบาย
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
ที่นี่เรามีประกาศสามประเภท: สัตว์ แมว และเสือ แมวสืบทอดสัตว์ และไทเกอร์ก็สืบทอดแคท
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  จะ  เป็นจริง
isTigerจะ เป็น  จริง
isAnimal  จะ  เป็นจริง
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCatจะ เป็นเท็จ
isTigerจะ เป็น  เท็จ
isAnimal  จะ  เป็นจริง

และแม้แต่อินเทอร์เฟซ:

รหัส คำอธิบาย
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
สร้างสองคลาส: Cat, TomCat และอินเทอร์เฟซที่เคลื่อนย้ายได้
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  จะ  เป็นจริง
isMoveable  จะ  เป็นจริง
isTom  จะเป็น  ความจริง
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  จะ  เป็นจริง
isMoveableจะ เป็น  เท็จ
isTomจะ เป็น  เท็จ

ตัวดำเนินการของอินสแตนซ์มีลักษณะดังนี้: ตัว ดำเนินการอินสแตนซ์ ของB

กล่าวอีกนัยหนึ่ง ตัวดำเนินการ ของอินสแตนซ์จะคืนค่าเป็นจริงหาก:

1)ตัวแปรaเก็บการอ้างอิงไปยังวัตถุประเภทB

2)  ตัวแปรaเก็บการอ้างอิงไปยังวัตถุที่มีคลาสสืบทอด  B

3)  ตัวแปรaเก็บการอ้างอิงไปยังวัตถุที่ใช้อินเทอร์เฟซ  B

มิฉะนั้น ตัวดำเนินการ instanceofจะส่งคืนค่าเท็จ

"เข้าใจแล้ว เหตุใดจึงจำเป็น ลุงริชิ"

"วันนี้ Ellie จะบอกคุณเกี่ยวกับเรื่องนี้ นี่เป็นผู้ดำเนินการที่ดีจริงๆ คุณจะมั่นใจได้ในวันนี้"

4
งาน
จาวาคอร์, ระดับ, บทเรียน
ล็อค
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and assimilate some material. What's more, you combat laziness.
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION