Instanceof เป็นตัวดำเนินการไบนารีใน Java และ ==,> และ <เป็นสิ่งที่เหมือนกัน เนื่องจากประกอบด้วยตัวอักษรจึงเป็นคำหลักที่สงวนไว้ใน Java ฟังก์ชั่นของมันคือการทดสอบว่าวัตถุทางด้านซ้ายเป็นอินสแตนซ์ของคลาสทางด้านขวาและส่งคืนข้อมูลประเภทบูลีนหรือไม่ ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
สตริง s = "ฉันเป็นวัตถุ!";
บูลีน isobject = s อินสแตนซ์ของวัตถุ;
เราประกาศการอ้างอิงวัตถุสตริงชี้ไปที่วัตถุสตริงแล้วใช้ Instancof เพื่อทดสอบว่าวัตถุที่ชี้ไปเป็นอินสแตนซ์ของคลาสวัตถุ isObject เป็นจริง
อินสแตนซ์ของมีการใช้งานบางอย่าง ตัวอย่างเช่นเราเขียนระบบสำหรับการจัดการตั๋วเงินซึ่งมีสามหมวดหมู่:
การคัดลอกรหัสมีดังนี้:
บิลคลาสสาธารณะ {// ละเว้นรายละเอียด}
Public Class Phonebill ขยาย Bill {// รายละเอียดละเว้น}
ระดับสาธารณะ Gasbill ขยาย Bill {// รายละเอียดละเว้น}
มีวิธีการในตัวจัดการเพื่อยอมรับวัตถุประเภทบิลและคำนวณจำนวนเงิน สมมติว่าวิธีการคำนวณใบเรียกเก็บเงินสองวิธีนั้นแตกต่างกันและวัตถุบิลขาเข้าอาจเป็นสองอย่างดังนั้นให้ใช้อินสแตนซ์ของการตัดสิน:
การคัดลอกรหัสมีดังนี้:
การคำนวณสองครั้งสาธารณะ (บิลบิล) {
if (บิลอินสแตนซ์ของใบปลิว) {
// คำนวณค่าโทรศัพท์
-
if (บิลอินสแตนซ์ของ Gasbill) {
// คำนวณค่าก๊าซ
-
-
-
ด้วยวิธีนี้สองคลาสย่อยสามารถประมวลผลได้ในวิธีเดียว
อย่างไรก็ตามวิธีการนี้มักจะถือว่าเป็นความล้มเหลวในการใช้ประโยชน์จากความหลากหลายเชิงวัตถุ ในความเป็นจริงฟังก์ชั่นข้างต้นต้องการวิธีการที่โอเวอร์โหลดสามารถทำได้อย่างสมบูรณ์ เพียงแค่ให้สองชื่อและค่าส่งคืนและยอมรับวิธีการที่มีประเภทพารามิเตอร์ที่แตกต่างกัน:
การคัดลอกรหัสมีดังนี้:
การคำนวณสองครั้งสาธารณะ (ใบเรียกเก็บเงินโทรศัพท์) {
// คำนวณค่าโทรศัพท์
-
การคำนวณสองครั้งสาธารณะ (Gasbill Bill) {
// คำนวณค่าก๊าซ
-