हेल्लो दोस्तों! आज हम इस आर्टिकल में Instance of Operator in hindi (जावा में इंस्टैंसऑफ़ ऑपरेटर क्या है?) के बारें में पढेंगे और इसके examples को भी देखेंगे, तो चलिय शुरू करते हैं:-
Instanceof Operator in Java in Hindi
java में instanceof एक operator है जिसका प्रयोग object reference को check करने के लिए किया जाता है. यह check करता है कि किसी object का reference दिए गये type से belong करता है या नहीं.
दूसरे शब्दों में कहें तो, “instanceof एक बाइनरी ऑपरेटर है जो यह check करता है कि object दिए गये type का एक instance है या नहीं.”
इस ऑपरेटर को type comparison operator भी कहते हैं क्योंकि यह instance को type के साथ compare करता है. यह या तो true value को return करता है या फिर false value को. यदि हम instanceof operator को किसी किसी ऐसे variable में apply करे जिसकी वैल्यू null है तो यह false return करेगा.
Syntax:-
result = objectName instanceof className;
यहाँ पर objectName जो है वह object का नाम है और className जो है वह class का name है. इसमें result तब true होगा जब कोई object किसी class का instance है और अगर वह नहीं है तो false होगा.
इसका एक सरल उदाहरण:-
class Person {
public static void main (String args []) {
Person p = new Person();
System.out.println (p instanceof Person);
}
}
इसका आउटपुट true आएगा.
इसका दूसरा example:-
class Bird {}
class Parrot1 extends Bird {// Parrot inherits Bird
public static void main (String args []) {
Parrot1 p = new Parrot1 ();
System.out.println (p instanceof Bird);
}
}
इसका आउटपुट true आएगा.
instanceof एक ऐसे variable के साथ जिसकी null value है
यदि हम instanceof को ऐसे variable के साथ apply करते हैं जिसकी null value होती है तो यह false return करता है. नीचे आपको इसका उदाहरण दिया गया है:-
class Parrot2 {
public static void main (String args []) {
Parrot2 p = null;
System.out.println (p instanceof Parrot2);
}
}
इसका आउटपुट false आएगा.
Downcasting in Java
instanceof ऑपरेटर का प्रयोग करके हम जावा में downcasting को perform कर सकते हैं. जब subclass type किसी object के parent class को refer करता है तो इसे downcasting कहते हैं. जब हम downcasting को direct ही परफॉर्म करते है तो यह compilation error देता है. जब हम इसे typecasting के द्वारा परफॉर्म करते है तो यह runtime में ClassCastException देता है. लेकिन जब हम instanceof का प्रयोग करते है तो इसे करना संभव हो पाता है.
Parrot p = new Bird(); //compilation error
Parrot p = (Parrot)new Bird();
// यह compile तो हो जाएगा परन्तु runtime में ClassCastException को throw करेगा.
नीचे के example में हम downcasting को instanceof का प्रयोग करके परफॉर्म करेंगे:-
class Bird {}
class Parrot3 extends Bird {
static void method (Bird b) {
if (b instanceof Parrot3) {
Parrot3 p = (Parrot3) b; // downcasting
System.out.println (“ok downcasting performed”);
}
}
public static void main (String [] args) {
Bird b = new Parrot3 ();
Parrot3.method (b);
}
}
इसका आउटपुट:- ok downcasting performed.
इसे पढ़ें:-
निवेदन:- अगर आपके लिए java की यह पोस्ट useful रही हो तो इसे अपने classmates के साथ जरुर share कीजिये और आपके कोई भी questions हो तो आप उन्हें नीचे कमेंट के द्वारा बताइए. धन्यवाद.