"สวัสดี Amigo! คุณได้พบกับ ตัวดำเนินการ อินสแตนซ์ออฟแล้ว วันนี้ฉันจะบอกคุณว่าจะใช้ได้อย่างไรและที่ใดอินสแตนซ์ของเป็นโอเปอเรเตอร์ที่ง่ายและมีประสิทธิภาพมาก"
"นั่นฟังดูเหมือนโฆษณา!"
"มันง่ายมาก มันใช้แบบนี้«object» instanceof «class» . "
ตรวจสอบว่าวัตถุเป็นอินสแตนซ์ของคลาสใดคลาสหนึ่งหรือไม่ มันง่ายกว่าการอธิบาย ดูตัวอย่างนี้:
รหัส | คำอธิบาย |
---|---|
|
isIntจะเป็นจริง วัตถุที่อ้างอิงโดยตัวแปร o เป็นอินสแตน ซ์ของ คลาส จำนวนเต็ม |
|
isIntจะเป็นเท็จ วัตถุที่อ้างอิงโดยตัวแปร o ไม่ใช่อินส แตนซ์ของ คลาส จำนวนเต็ม มันเป็นวัตถุสตริง |
|
isFISจะเป็นจริง วัตถุที่อ้างอิงโดยตัวแปร o เป็นอินสแตนซ์ของคลาสFileInputStream |
"ใช่ มันง่ายมาก"
"โอเปอเรเตอร์นี้ยังอธิบายถึงการสืบทอด ลองดูสิ"
รหัส | คำอธิบาย |
---|---|
|
ที่นี่เรามีประกาศสามประเภท: สัตว์ แมว และเสือ แมวสืบทอดสัตว์ และไทเกอร์ก็สืบทอดแคท |
|
isCat จะ เป็นจริง isTigerจะ เป็น จริง isAnimal จะ เป็นจริง |
|
isCatจะ เป็นเท็จ isTigerจะ เป็น เท็จ isAnimal จะ เป็นจริง |
และแม้แต่อินเทอร์เฟซ:
รหัส | คำอธิบาย |
---|---|
|
สร้างสองคลาส: Cat, TomCat และอินเทอร์เฟซที่เคลื่อนย้ายได้ |
|
isCat จะ เป็นจริง isMoveable จะ เป็นจริง isTom จะเป็น ความจริง |
|
isCat จะ เป็นจริง isMoveableจะ เป็น เท็จ isTomจะ เป็น เท็จ |
ตัวดำเนินการของอินสแตนซ์มีลักษณะดังนี้: ตัว ดำเนินการอินสแตนซ์ ของB
กล่าวอีกนัยหนึ่ง ตัวดำเนินการ ของอินสแตนซ์จะคืนค่าเป็นจริงหาก:
1)ตัวแปรaเก็บการอ้างอิงไปยังวัตถุประเภทB
2) ตัวแปรaเก็บการอ้างอิงไปยังวัตถุที่มีคลาสสืบทอด B
3) ตัวแปรaเก็บการอ้างอิงไปยังวัตถุที่ใช้อินเทอร์เฟซ B
มิฉะนั้น ตัวดำเนินการ instanceofจะส่งคืนค่าเท็จ
"เข้าใจแล้ว เหตุใดจึงจำเป็น ลุงริชิ"
"วันนี้ Ellie จะบอกคุณเกี่ยวกับเรื่องนี้ นี่เป็นผู้ดำเนินการที่ดีจริงๆ คุณจะมั่นใจได้ในวันนี้"
GO TO FULL VERSION