วิธีการติดตั้ง InstanceOf ใน JAVA



บทความเกี่ยวกับ InstanceOf ใน Java นี้จะแนะนำให้คุณรู้จักกับ Java instancOf Operator และติดตามผลด้วยการสาธิตที่ใช้ได้จริง

อินสแตนซ์ของใน เป็นตัวดำเนินการที่ใช้ตรวจสอบประเภทของวัตถุ ในอีกแง่หนึ่งคือทดสอบว่าวัตถุนั้นเป็นอินสแตนซ์ของคลาสเฉพาะหรืออินเทอร์เฟซ ผลลัพธ์ของการดำเนินการดังกล่าวเป็นอย่างใดอย่างหนึ่ง จริง หรือ เท็จ

คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้





ไปต่อกับบทความนี้เกี่ยวกับ instanceOf ใน Java

ตัวดำเนินการนี้เรียกอีกอย่างว่าประเภท ตัวดำเนินการเปรียบเทียบ เนื่องจากอินสแตนซ์ถูกเปรียบเทียบกับประเภท



ไวยากรณ์:

(วัตถุ) instanceof (ประเภท)

ตัวอย่างของตัวดำเนินการ instanceOf สามารถดูได้ด้านล่าง:

คลาสสาธารณะ Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}

เอาต์พุต



จริง

ในตัวอย่างผลลัพธ์ที่ส่งกลับไปยังผู้ใช้คือ จริง เช่น “ เอส ” เป็นตัวอย่างของคลาส Main

ตัวอย่าง

อ็อบเจ็กต์ประเภท subclass ยังเป็นประเภทของคลาสหลัก

ในตัวอย่างต่อไปนี้ Rock ขยายเพลง วัตถุของ Rock สามารถอ้างถึงได้โดยคลาส Rock หรือ Music

ความแตกต่างระหว่าง bigdata และ hadoop
คลาส Music {} คลาส Rock ขยาย Music {// Rock สืบทอด Music public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}

เอาต์พุต

จริง

ไปต่อกับบทความนี้เกี่ยวกับ instanceOf ใน Java

การใช้ตัวแปรที่มีค่า null

คลาสดนตรี {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}

ในตัวอย่างที่ให้ไว้ข้างต้นตัวแปรที่กำหนดมีค่า null

java มีความสัมพันธ์

ดังนั้นผลลัพธ์ที่ส่งคืนจึงเป็นเท็จ

เอาต์พุต

เท็จ

ต้องสังเกตประเด็นต่อไปนี้ขณะใช้ตัวดำเนินการ instanceOf:

ไปต่อกับบทความนี้เกี่ยวกับ instanceOf ใน Java

อ็อบเจ็กต์หลักไม่ใช่อินสแตนซ์ของ Child

class Parent {} class Child ขยาย Parent {} class Main {public static void main (String [] args) {Parent p = new Parent () if (p instanceof Child) System.out.println ('p เป็นอินสแตนซ์ของ Child ') else System.out.println (' p ไม่ใช่อินสแตนซ์ของ Child ')}}

เอาต์พุต

P ไม่ใช่ตัวอย่างของ Child

ไปต่อกับบทความนี้เกี่ยวกับ instanceOf ใน Java

Downc น่าตกใจ

เมื่ออ็อบเจ็กต์ของคลาส Parent ถูกอ้างถึงโดยคลาสย่อยเมธอดนี้เรียกว่า downcasting

ในการดำเนินการดาวน์คาสต์โดยตรงคอมไพเลอร์จะส่งกลับข้อผิดพลาดในการคอมไพล์

Rock r = new Music () // ข้อผิดพลาดในการคอมไพล์

เมื่อใช้การพิมพ์แบบพิมพ์ ClassCastException จะถูกส่งไปที่รันไทม์

Rock r = (Rock) เพลงใหม่ () // การรวบรวมประสบความสำเร็จ แต่ ClassCastException ถูกโยนทิ้ง

วิธีเดียวที่สามารถทำการดาวน์คาสติ้งได้คือการใช้อินสแตนซ์ของตัวดำเนินการ

คลาส Music {} คลาส Rock ขยาย Music {static void method (Music m) {if (m instanceof Rock) {Rock r = (Rock) m // downcasting System.out.println ('Downcasting Successful')}} โมฆะคง main (สตริง [] args) {ดนตรี m = new Rock () Rock.method (m)}}

เอาต์พุต

Downcasting ประสบความสำเร็จ

ไปต่อกับบทความนี้เกี่ยวกับ instanceOf ใน Java

ตัวดำเนินการแก้ไขขอบเขต c ++

ทำความเข้าใจกับ instanceOf:

วิธีการ instanceOf สามารถเข้าใจได้ชัดเจนยิ่งขึ้นจากตัวอย่างด้านล่าง:

ตัวอย่างนี้ใช้อินเทอร์เฟซ:

อินเทอร์เฟซอินสแตนซ์ {} คลาส S ใช้อินสแตนซ์ {โมฆะสาธารณะ s () {System.out.println ('วิธีแรก')}} คลาส T ใช้อินสแตนซ์ {โมฆะสาธารณะ t () {System.out.println ('วิธีที่สอง') }} class Invoke {void invoke (Instance i) {// upcasting if (i instanceof S) {S s = (S) i // Downcasting ss ()} if (i instanceof T) {T t = (T) i // Downcasting tt ()}}} class Main {public static void main (String args []) {Instance i = new T () Invoke v = new Invoke () v.invoke (i)}}

ผลลัพธ์ของตัวอย่างมีดังนี้:
วิธีที่สอง

ตัวอย่างนี้แสดงให้เห็นถึงแนวคิดนี้อย่างแม่นยำ ที่นี่คลาสผู้ปกครองคือเครื่องดนตรีและคลาสย่อยสองคลาสคือกีตาร์และเปียโน:

คลาสเครื่องดนตรี {} คลาสกีต้าร์ขยายเครื่องดนตรี {} คลาสเปียโนขยายเครื่องดนตรี {} คลาส Main {public static void main (String [] args) {Instrument i = new Instrument () Guitar g = new Guitar () Piano piano = new Piano ( ) System.out.println (g instanceof Instrument) System.out.println (p instanceof Instrument) System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano) i = g System.out.println ( i instanceof Guitar) System.out.println (i instanceof Piano) i = p System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano)}}

ผลลัพธ์มีดังนี้:

จริง

จริง

เท็จ

เท็จ

จริง

เท็จ

เท็จ

จริง

นี่คือวิธีการค้นหาประเภทของวัตถุอย่างมีประสิทธิภาพ อินสแตนซ์โอเปอเรเตอร์พิสูจน์แล้วว่ามีประโยชน์มากเนื่องจากมีการดำเนินการเมธอดอย่างเหมาะสม

ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้เกี่ยวกับ 'instanceOf ใน Java' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดู Java Training โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด