जावा में जेनेरिक क्या है? - एक शुरुआती गाइड



जावा में जेनेरिक का यह लेख उदाहरणों के साथ-साथ जावा जेनरिक और इसके विभिन्न प्रकारों के बारे में एक संक्षिप्त जानकारी देगा।

एक उदाहरण पर विचार करें जहां आपको किसी इलाके में रहने वाली चीजों की एक सूची बनानी है। इससे कोई फर्क नहीं पड़ता कि वह इंसान है, जानवर है या पौधा है। यह सब मायने रखता है। इस मामले में, आप उन सभी को 'लिविंग थिंग्स' के रूप में वर्गीकृत करेंगे और उन्हें वर्गीकृत नहीं करेंगे। इसी तरह, जब आपको कुछ डेटा स्टोर करना होता है, तो आपके लिए जो मायने रखता है वह सामग्री है न कि डेटाटाइप, और यह कि आप जेनरिक का उपयोग कहां करते हैं। में जेनरिक एक भाषा विशेषता है जो सामान्य प्रकार और विधियों के उपयोग की अनुमति देती है।

नीचे उन विषयों की सूची दी गई है जिन्हें मैं इस लेख में शामिल करूंगा:





जावा में जेनेरिक क्या है?

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

अब जब आप जानते हैं कि जावा में जेनेरिक क्या है, तो आगे बढ़ते हैं और समझते हैं कि आपको जावा जेनिक्स की आवश्यकता क्यों है।



क्यों जावा पीढ़ी?

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

c ++ नाम स्थान का उपयोग करते हुए

फ्रेमवर्कहार्की - जावा में जेनरिक - एडुर्का

कभी-कभी जावा एप्लिकेशन में, इनपुट का डेटा प्रकार निश्चित नहीं होता है। इनपुट एक हो सकता है पूर्णांक , सेवा मेरे तैरना या । इनपुट को असाइन करने के लिए सही डेटाटाइप के लिए, पूर्व जांच आयोजित की जानी थी। पारंपरिक दृष्टिकोण में, इनपुट लेने के बाद, इनपुट के डेटाटाइप की जांच की गई और फिर उसे सही डेटाटाइप के चर को सौंपा गया। जब इस तर्क का उपयोग किया गया था, तो कोड और निष्पादन समय की लंबाई बढ़ गई थी। इससे बचने के लिए, जेनरिक पेश किए गए । जब आप जेनरिक का उपयोग करते हैं, तो कोड में मापदंडों को स्वचालित रूप से संकलन समय पर जांचा जाता है और यह डिफ़ॉल्ट रूप से डेटाटाइप सेट करता है। तो यह वह जगह है जहाँ आपको जावा में जेनरिक की अवधारणा की आवश्यकता है।



अब जब आपने जेनरिक पर कुछ अंतर्दृष्टि प्राप्त कर ली है, तो आगे बढ़ने दें और विभिन्न तरीकों से देखें कि कैसेजेनरिक को सोर्स कोड पर लागू किया जा सकता है

जावा पीढ़ी के प्रकार

जावा में चार अलग-अलग तरीके लागू किए जा सकते हैं और वे इस प्रकार हैं:

  1. जेनेरिक टाइप क्लास
  2. सामान्य इंटरफ़ेस
  3. सामान्य विधि
  4. जेनेरिक कंस्ट्रक्टर

अब आइए समझते हैं कि सामान्य प्रकार की कक्षा में गहराई से कैसे लागू किया जा सकता है।

1. जेनेरिक टाइप क्लास

एक वर्ग को जेनेरिक कहा जाता है यदि वह एक या अधिक प्रकार के चर घोषित करता है। इन चर प्रकारों को प्रकार के मापदंडों के रूप में जाना जाता है । इसे एक उदाहरण की मदद से समझते हैं। नीचे दिए गए उदाहरण में, मैं एक संपत्ति के साथ एक वर्ग बनाऊंगा एक्स और संपत्ति का प्रकार एक वस्तु है।

class Genericclass {निजी ऑब्जेक्ट x public void set (ऑब्जेक्ट x) {this.x = x} सार्वजनिक ऑब्जेक्ट प्राप्त करें () {{x}}

यहां, एक बार जब आप एक निश्चित प्रकार के साथ वर्ग को इनिशियलाइज़ करते हैं, तो उस विशेष प्रकार के साथ ही क्लास का उपयोग किया जाना चाहिए। जैसे यदि आप मान रखने के लिए कक्षा का एक उदाहरण चाहते हैं एक्स के प्रकार ‘ स्ट्रिंग Mer, तो प्रोग्रामर को सेट करना चाहिए और केवल प्राप्त करना चाहिए प्रकार। चूंकि मैंने संपत्ति प्रकार को वस्तु घोषित किया है, इसलिए इस प्रतिबंध को लागू करने का कोई तरीका नहीं है। एक प्रोग्रामर किसी भी ऑब्जेक्ट को सेट कर सकता है और किसी भी रिटर्न वैल्यू टाइप से उम्मीद कर सकता है विधि प्राप्त करें चूंकि सभी जावा प्रकार के उपप्रकार हैं कक्षा।

इस प्रकार के प्रतिबंध को लागू करने के लिए, हम नीचे दिए गए जेनेरिक का उपयोग कर सकते हैं:

class Genericclass {// T का अर्थ 'टाइप' निजी T x सार्वजनिक शून्य सेट (T x) {this.x = x} public T get () {रिटर्न x}} है

अब आपको आश्वस्त किया जा सकता है कि गलत प्रकार के साथ वर्ग का दुरुपयोग नहीं किया जाएगा। का एक सरल उदाहरण है' जेनेरिकक्लास 'जैसा दिखता है नीचे दिखाया गया है:

Genericclass उदाहरण = नया Genericclass () example.set ('Edureka') inst.set (10) // यह संकलन समय त्रुटि को बढ़ाएगा

तो यह कैसे काम करता है यहसादृश्य इंटरफ़ेस के लिए भी सच है। आइए समझने के लिए एक उदाहरण देखें कि जावा में इंटरफेस में जेनेरिक प्रकार की जानकारी का उपयोग कैसे किया जा सकता है।

2. सामान्य इंटरफ़ेस

एक सार डेटा प्रकारों को संदर्भित करता है। वो अनुमति देते हैं उनके प्रतिनिधित्व के विवरण से स्वतंत्र रूप से हेरफेर किया जाए। इसके अलावा, वे एक पदानुक्रम बनाते हैं भाषाएँ। आइए समझते हैं कि जावा में इंटरफेस के लिए सामान्य प्रकार को कैसे लागू किया जा सकता है।

// जेनेरिक इंटरफ़ेस परिभाषा इंटरफ़ेस GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // // जेनेरिक इंटरफ़ेस क्लास को लागू करने वाला एक वर्ग जेनेरिकक्लास लागू होता है GenericInterface (सार्वजनिक पूर्णांक निष्पादन) (स्ट्रिंग x) {// निष्पादन कोड} पूर्णांक x) {// निष्पादन कोड}}

मुझे आशा है कि आप यह समझने में सक्षम थे कि जेनेरिक को क्लास और इंटरफेस में कैसे लागू किया जा सकता है। अब इस लेख में गहराई से जाने दें और समझें कि यह कैसे तरीकों और निर्माणकर्ताओं के लिए सहायक है।

3. सामान्य तरीके

सामान्य तरीके सामान्य वर्गों के समान हैं। वे केवल एक ही पहलू में एक दूसरे से भिन्न होते हैं गुंजाइश या प्रकार की जानकारी केवल विधि के अंदर है। सामान्य तरीके अपने स्वयं के प्रकार के मापदंडों का परिचय देते हैं।

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

सार्वजनिक स्थिर int countAllOccurrences (T [] सूची, T तत्व) {int count = 0 if (तत्व == null) {for (T listElement: सूची) if (listElement == null) count ++} और {} (T listElement: list) ) अगर (एलिमेंट (असेंबली) (सूची)) + ++ रिटर्न काउंट}

यदि आप एक सूची पास करते हैं इस पद्धति में खोज करने के लिए, यह ठीक काम करेगा। लेकिन यदि आप स्ट्रिंग की सूची में एक संख्या खोजने की कोशिश करते हैं, तो यह संकलन समय त्रुटि देगा।

यह उपमा निर्माणकर्ता के समान है। आइए जेनेरिक कंस्ट्रक्टर के लिए एक उदाहरण लें और समझें कि यह कैसे काम करता है।

4. जेनेरिक कंस्ट्रक्टर

बिल्डर को कोड का एक ब्लॉक है जो नए बनाए गए ऑब्जेक्ट को इनिशियलाइज़ करता है। ए बिल्डर जे में एक उदाहरण विधि जैसा दिखता है एवा लेकिन यह एक विधि नहीं है क्योंकि इसमें वापसी का प्रकार नहीं है। कंस्ट्रक्टर वर्ग के समान नाम है और J में इस तरह दिखता है एवा कोड। अब एक उदाहरण लेते हैं और समझते हैं कि यह कैसे काम करता है।

क्लास डाइमेंशन {प्राइवेट टी लेंथ प्राइवेट टी चौड़ाई प्राइवेट टी हाइट // जेनेरिक कंस्ट्रक्टर पब्लिक डायमेंशन (टी लेंथ, टी चौड़ाई, टी हाइट) {सुपर () this.length = लेंथ इस. चौड़ाई = हाइट = हाइट}}

उपरोक्त उदाहरण में, आयाम वर्ग के निर्माता के पास जानकारी है। तो आपके पास केवल एक ही प्रकार की सभी विशेषताओं के साथ आयाम का एक उदाहरण हो सकता है। तो यह है कि आप सामान्य प्रकार के निर्माणकर्ताओं का उपयोग कैसे कर सकते हैं। मुझे उम्मीद है कि आप जावा में जेनेरिक के प्रकारों को समझ गए होंगे।

अब आगे बढ़ते हैं और Java में Generics के फायदों को देखते हैं।

जावा में जेनरिक के लाभ

1. कोड पुन: प्रयोज्यता

आप एक रणनीति या एक वर्ग या एक रचना कर सकते हैं एक बार और किसी भी प्रकार या किसी भी तरीके के लिए उपयोग करें जिसकी आपको आवश्यकता है।

2. व्यक्तिगत प्रकार की कास्टिंग की आवश्यकता नहीं है

मूल रूप से, आपने से जानकारी पुनर्प्राप्त की है हर बार, आपको इसे टाइप करना होगा। प्रत्येक रिकवरी कार्य में टाइपकास्टिंग एक प्रमुख माइग्रेन है। उस दृष्टिकोण को मिटाने के लिए, जेनेरिक को पेश किया गया था।

3. एक गैर-जेनेरिक एल्गोरिदम को लागू करना

यह उन एल्गोरिदम की गणना कर सकता है जो विभिन्न प्रकार की वस्तुओं पर काम करते हैं जो सुरक्षित भी हैं।

यह सब जावा जेनरिक के फायदों के बारे में था। इसके साथ, हम जावा में जेनरिक पर इस लेख के अंत में आते हैं। मुझे आशा है कि आपने इसे जानकारीपूर्ण पाया और जावा जेनरिक को समझने में आपकी मदद की।

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। हम यहां आपकी यात्रा में हर कदम पर आपकी मदद करने के लिए हैं, इस साक्षात्कार साक्षात्कार के अलावा बनने के लिए, हम एक पाठ्यक्रम के साथ आते हैं, जो छात्रों और पेशेवरों के लिए बनाया गया है, जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया जावा में इस 'जेनरिक के टिप्पणी अनुभाग में इसका उल्लेख करें ' लेख और हम जितनी जल्दी हो सके आप को वापस मिल जाएगा।