जावा में डायनामिक बाइंडिंग का उपयोग कैसे करें?

Java Mem Dayanamika Ba Indinga Ka Upayoga Kaise Karem



गतिशील बंधन 'बहुरूपी व्यवहार की अनुमति देता है, जहां किसी ऑब्जेक्ट की विधि का आह्वान संदर्भ प्रकार के बजाय ऑब्जेक्ट के वास्तविक प्रकार के आधार पर रनटाइम पर निर्धारित किया जाता है। यह उपवर्गों को ओवरराइड करने और मूल वर्ग में परिभाषित विधियों के कार्यान्वयन को प्रदान करने की अनुमति देकर कोड पुन: प्रयोज्यता को बढ़ावा देता है।

यह ब्लॉग जावा में डायनामिक बाइंडिंग के उपयोग और कार्यान्वयन को प्रदर्शित करता है।

जावा में डायनामिक बाइंडिंग का उपयोग कैसे करें?

गतिशील बाइंडिंग वस्तुओं के बीच ढीले युग्मन को सक्षम बनाता है। यह नए उपवर्गों को जोड़कर कार्यक्षमता के आसान विस्तार में मदद करता है जो मौजूदा कोड को संशोधित किए बिना तरीकों को ओवरराइड करता है। रनटाइम डिस्पैचिंग, इवेंट हैंडलिंग या प्लगइन सिस्टम के लिए डायनामिक बाइंडिंग का व्यापक रूप से उपयोग किया जाता है।







आइए विस्तृत विवरण के लिए कुछ उदाहरण देखें:



उदाहरण 1: डायनेमिक बाइंडिंग लागू करना



डायनामिक बाइंडिंग का उपयोग करके, प्रोग्रामर उपयोगकर्ताओं को अनुकूलन योग्य एप्लिकेशन बनाने के लिए डिफ़ॉल्ट व्यवहार को अनुकूलित और ओवरराइड करने की अनुमति दे सकते हैं। व्यावहारिक कार्यान्वयन के लिए, आइए एक उदाहरण देखें:





आयात java.util.Arrays;
आयात java.util.HashSet;
आयात java.util.List;
आयात java.util.Set;

सार्वजनिक वर्ग DynBind {
सार्वजनिक स्थैतिक शून्य मुख्य ( डोरी [ ] तर्क ) {
गेमिंग गेम टाइप1 = नया क्रिकेट ( ) ;
गेमिंग गेम टाइप2 = नया कॉलऑफ़ड्यूटी ( ) ;
गेमटाइप1.गेमटाइप ( ) ;
गेमटाइप2.गेमटाइप ( ) ;
}
}
क्लास गेमिंग {
सार्वजनिक शून्य खेल प्रकार ( ) {
System.out.println ( 'भौतिक या आभासी खेल' ) ;
}
}
क्लास क्रिकेट गेमिंग का विस्तार करता है {
@ अवहेलना
सार्वजनिक शून्य खेल प्रकार ( ) {
System.out.println ( 'क्रिकेट एक शारीरिक खेल है' ) ;
}
}
क्लास CallofDuty गेमिंग का विस्तार करता है {
@ अवहेलना
सार्वजनिक शून्य गेम प्रकार ( ) {
System.out.println ( 'CallofDuty एक वर्चुअल गेम है' ) ;
}
}

उपरोक्त कोड की व्याख्या:



  • सबसे पहले, कक्षा ' DynBind 'बनाया गया है, और प्रकार की दो वस्तुएं' जुआ ”घोषित हैं.
  • इसके बाद, इन ऑब्जेक्ट्स को नए के साथ आरंभ किया जाता है क्रिकेट ' और ' कर्तव्य 'ऑब्जेक्ट्स, यह आरंभीकरण गतिशील बाइंडिंग को प्रदर्शित करता है। संदर्भ प्रकार है ' जुआ 'लेकिन वास्तविक वस्तु प्रकार हैं' क्रिकेट ' और ' कर्तव्य ', क्रमश।
  • अब, इन वस्तुओं का उपयोग 'आह्वान करने के लिए किया जाता है' गेम का प्रकार() 'बाल कक्षाओं में फ़ंक्शन को ओवरराइड करके कार्य करता है।
  • फिर, माता-पिता ' जुआ 'वर्ग घोषित किया गया है जो' बनाता है और प्रारंभ करता है गेम का प्रकार() 'फ़ंक्शन, जो एक डमी टेक्स्ट संदेश प्रिंट करता है।
  • इसके बाद, '' नाम से दो बाल वर्ग बनाए जाते हैं क्रिकेट ' और ' कर्तव्य ”। ये वर्ग माता-पिता से विरासत में मिले हैं” जुआ ' कक्षा।
  • उसके बाद, ' @ओवरराइड 'एनोटेशन का उपयोग पैरेंट को ओवरराइड करने के लिए किया जाता है' जुआ 'वर्ग विधियों का नाम' गेम का प्रकार() ”।
  • अंत में, दोनों चाइल्ड क्लास ओवरराइड तरीकों में एक अलग डमी संदेश प्रदर्शित होता है।

निष्पादन चरण की समाप्ति के बाद:

आउटपुट प्रदर्शित करता है कि चाइल्ड क्लास के डमी संदेश डायनामिक बाइंडिंग का उपयोग करके कंसोल पर प्रदर्शित होते हैं।

उदाहरण 2: बहुस्तरीय वंशानुक्रम लागू करना

मल्टीलेवल इनहेरिटेंस के निर्माण के लिए डायनेमिक बाइंडिंग को भी लागू किया जा सकता है। एक ही प्रोग्राम के दो कोड ब्लॉक जैसा कि नीचे दिखाया गया है:

क्लास गेमिंग {
सार्वजनिक शून्य गेम प्रकार ( ) {
System.out.println ( 'भौतिक या आभासी खेल' ) ;
}
}
क्लास क्रिकेट गेमिंग का विस्तार करता है {
@ अवहेलना
सार्वजनिक शून्य गेम प्रकार ( ) {
System.out.println ( 'क्रिकेट एक शारीरिक खेल है' ) ;
}
सार्वजनिक शून्य खेल प्रारूप ( ) {
System.out.println ( 'क्रिकेट में खेलने के अलग-अलग प्रारूप हैं' ) ;
}
}
क्लास CallofDuty गेमिंग का विस्तार करता है {
@ अवहेलना
सार्वजनिक शून्य गेम प्रकार ( ) {
System.out.println ( 'CallofDuty एक वर्चुअल गेम है' ) ;
}
सार्वजनिक शून्य गेममोड ( ) {
System.out.println ( 'CallofDuty में कई गेम मोड हैं' ) ;
}
}
क्लास क्रिकेटगेम क्रिकेट का विस्तार करता है {
सार्वजनिक शून्य गेममोड ( ) {
System.out.println ( 'क्रिकेट में सिंगल गेम मोड है' ) ;
}
}
क्लास CallofDutyGame, CallofDuty का विस्तार करता है {
}

उपरोक्त कोड की व्याख्या:

  • सबसे पहले, माता-पिता ' जुआ 'वर्ग बनाया गया है और इसमें' शामिल है गेम का प्रकार() 'फ़ंक्शन जिसमें एक डमी संदेश है।
  • इसके बाद, दो बाल वर्गों का नाम ' क्रिकेट ' और ' कर्तव्य 'बनाए गए हैं, दोनों' नाम के मूल वर्ग फ़ंक्शन को ओवरराइड करते हैं गेम का प्रकार() ”।
  • इन कक्षाओं में एक अतिरिक्त फ़ंक्शन होता है जिसका नाम ' खेल प्रारूप() ' और ' खेल मोड() क्रमशः कार्य करता है।
  • फिर, एक बहु-स्तरीय बच्चा बनाएं जिसका नाम ' क्रिकेट खेल 'जिसे बच्चे द्वारा बढ़ाया जाता है' क्रिकेट ' कक्षा। इसमें शामिल है ' खेल मोड() 'फ़ंक्शन जो उसके मूल द्वारा ओवरराइड किया गया है' क्रिकेट ' कक्षा।
  • उसके बाद, ' कॉलऑफ़ड्यूटीगेम 'कक्षा' के लिए एक बच्चे के रूप में बनाई गई है कर्तव्य ' कक्षा। यह एक बहुस्तरीय विरासत बनाता है और गतिशील बाइंडिंग की कार्यक्षमता को सक्षम करता है।

अब, ' डालें मुख्य() ' तरीका:

सार्वजनिक वर्ग DynBind {
सार्वजनिक स्थैतिक शून्य मुख्य ( डोरी [ ] तर्क ) {
कॉलऑफ़ड्यूटीगेम कॉडग = नया कॉलऑफड्यूटीगेम ( ) ;
codg.gameType ( ) ;
कॉडजी.गेममोड ( ) ;

क्रिकेट खेल cricg = नया क्रिकेट गेम ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

उपरोक्त कोड की व्याख्या:

  • सबसे पहले, 'की एक वस्तु कॉलऑफ़ड्यूटीगेम 'वर्ग बनाया गया है जो अपने मूल वर्गों के कार्यों को कॉल करता है।
  • इसी प्रकार, ' क्रिकेट खेल 'ऑब्जेक्ट घोषित किया गया है जो अपने मूल वर्ग फ़ंक्शन को कॉल करता है जो पदानुक्रम में बहुस्तरीय पर उपलब्ध है।

निष्पादन चरण की समाप्ति के बाद:

आउटपुट से पता चलता है कि जावा में डायनेमिक बाइंडिंग का उपयोग करके मल्टीलेवल इनहेरिटेंस बनाया गया है।

निष्कर्ष

जावा में, ' गतिशील बंधन बहुरूपता, कोड पुन: प्रयोज्यता, लचीलापन और विस्तारशीलता जैसे लाभ प्रदान करता है। इसे इनहेरिटेंस, मेथड ओवरराइडिंग और अपकास्टिंग के नियमों का पालन करके कार्यान्वित किया जाता है। डायनेमिक बाइंडिंग रनटाइम फ़ंक्शंस को भी सक्षम बनाता है और OOPs अवधारणा में लचीले और बहुरूपी व्यवहार को बढ़ाता है। यह सब जावा में डायनामिक बाइंडिंग के उपयोग और कार्यान्वयन के बारे में है।