कोटलिन में नेस्टेड और इनर क्लासेस

May 09 2023
कोटलिन एक आधुनिक प्रोग्रामिंग भाषा है जिसका उपयोग Android एप्लिकेशन और सर्वर-साइड एप्लिकेशन विकसित करने के लिए किया जाता है। कोटलिन की दिलचस्प विशेषताओं में से एक नेस्टेड और आंतरिक कक्षाओं के लिए इसका समर्थन है।

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

नेस्टेड क्लासेस

एक नेस्टेड क्लास एक ऐसा वर्ग है जिसे किसी अन्य वर्ग के अंदर परिभाषित किया जाता है। classकोटलिन में, आप किसी नेस्टेड क्लास को केवल कीवर्ड का उपयोग करके बाहरी क्लास के अंदर घोषित करके परिभाषित कर सकते हैं। यहाँ एक उदाहरण है:

class Outer {
    class Nested {
        fun `sayHello`() {
            println("Hello from Nested!")
        }
    }
}

आप सिंटैक्स का उपयोग करके नेस्टेड क्लास का एक उदाहरण बना सकते हैं:

val nested = Outer.Nested()
nested.`sayHello`() // Output: Hello from Nested!

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

भीतरी वर्ग

एक आंतरिक वर्ग एक नेस्टेड वर्ग है जिसकी बाहरी कक्षा के सदस्यों तक पहुँच होती है। innerकोटलिन में, आप कीवर्ड से पहले कीवर्ड का उपयोग करके एक आंतरिक वर्ग को परिभाषित कर सकते हैं class। यहाँ एक उदाहरण है:

class Outer {
    private val name: String = "Outer"
    
    inner class Inner {
        fun `sayHello`() {
            println("Hello from $name.Inner!")
        }
    }
}

आप सिंटैक्स का उपयोग करके एक आंतरिक वर्ग का उदाहरण बना सकते हैं:

val outer = Outer()
val inner = outer.Inner()
inner.`sayHello`() // Output: Hello from Outer.Inner!

आंतरिक कक्षाओं का उपयोग करने का एक लाभ यह है कि वे अपने बाहरी वर्ग के सदस्यों तक पहुँच सकते हैं, जो कुछ स्थितियों में उपयोगी हो सकता है। उदाहरण के लिए, आपके पास एक वर्ग हो सकता है जो वस्तुओं की सूची का प्रतिनिधित्व करता है, और एक आंतरिक वर्ग जो उस सूची पर एक पुनरावर्तक का प्रतिनिधित्व करता है। पुनरावर्तक को एक आंतरिक वर्ग बनाकर, यह सूची वर्ग के सदस्यों, जैसे कि इसके आकार और तत्वों तक पहुँच सकता है।

नेस्टेड और इनर क्लास के बीच अंतर

कुछ स्पष्ट अंतर इस प्रकार हैं:

  1. बाहरी वर्ग के सदस्यों तक पहुँच: नेस्टेड वर्ग अपने बाहरी वर्ग के सदस्यों तक नहीं पहुँच सकते, जबकि आंतरिक वर्ग कर सकते हैं। आंतरिक कक्षाओं में उनके बाहरी वर्ग के उदाहरण का संदर्भ होता है, जो उन्हें इसके गुणों और कार्यों तक पहुंचने की अनुमति देता है।
  2. स्कोप: एक नेस्टेड क्लास का दायरा एनक्लोजिंग क्लास तक सीमित होता है, जबकि एक इनर क्लास का स्कोप एनक्लोजिंग क्लास के उदाहरण तक सीमित होता है। इसका मतलब यह है कि एक आंतरिक वर्ग अपने बाहरी वर्ग के उदाहरण के निजी सदस्यों तक पहुँच सकता है।
  3. इनिशियलाइज़ेशन: नेस्टेड क्लास का एक उदाहरण इसके बाहरी वर्ग के उदाहरण के बिना बनाया जा सकता है, जबकि आंतरिक वर्ग का एक उदाहरण इसके बाहरी वर्ग के उदाहरण के साथ बनाया जाना चाहिए।
  4. उपयोग: नेस्टेड कक्षाओं का उपयोग आम तौर पर समूह से संबंधित कार्यक्षमताओं को एक साथ करने के लिए किया जाता है, जबकि आंतरिक कक्षाओं का उपयोग तब किया जाता है जब आपको बाहरी वर्ग के सदस्यों को नेस्टेड वर्ग के भीतर से एक्सेस करने की आवश्यकता होती है।
  5. सिंटैक्स: नेस्टेड क्लास घोषित करने का सिंटैक्स केवल classकीवर्ड का उपयोग करके इसे बाहरी वर्ग के अंदर घोषित करना है। आंतरिक वर्ग घोषित करने का सिंटैक्स कीवर्ड innerसे पहले कीवर्ड का उपयोग करना है।class
  6. नामकरण: नेस्टेड कक्षाओं का नाम बाहरी वर्ग के नाम के बाद एक बिंदु और नेस्टेड वर्ग के नाम से रखा जाता है। आंतरिक कक्षाओं का नाम बाहरी वर्ग के नाम के साथ एक बिंदु और आंतरिक वर्ग के नाम के साथ रखा गया है, और बाहरी वर्ग के एक उदाहरण के साथ जुड़ा हुआ है।

निष्कर्ष

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