जावा ट्यूटोरियल

जावा होम जावा परिचय जावा प्रारंभ करें जावा सिंटेक्स जावा टिप्पणियाँ जावा चर जावा डेटा प्रकार जावा टाइप कास्टिंग जावा ऑपरेटर्स जावा स्ट्रिंग्स जावा मठ जावा बूलियन जावा अगर ... और जावा स्विच जावा जबकि लूप लूप के लिए जावा जावा ब्रेक/जारी रखें जावा सरणी

जावा तरीके

जावा तरीके जावा विधि पैरामीटर्स जावा विधि ओवरलोडिंग जावा स्कोप जावा रिकर्सन

जावा क्लासेस

जावा ओओपी जावा क्लासेस/ऑब्जेक्ट्स जावा क्लास एट्रीब्यूट्स जावा क्लास मेथड्स जावा कंस्ट्रक्टर्स जावा संशोधक जावा एनकैप्सुलेशन जावा पैकेज / एपीआई जावा विरासत जावा बहुरूपता जावा इनर क्लासेस जावा एब्स्ट्रैक्शन जावा इंटरफ़ेस जावा Enums जावा उपयोगकर्ता इनपुट जावा तिथि जावा ऐरेलिस्ट जावा लिंक्डलिस्ट जावा हैश मैप जावा हैशसेट जावा इटरेटर जावा रैपर क्लासेस जावा अपवाद जावा रेगेक्स जावा धागे जावा लैम्ब्डा

जावा फ़ाइल हैंडलिंग

जावा फ़ाइलें जावा फ़ाइलें बनाएँ/लिखें जावा फ़ाइलें पढ़ें जावा फ़ाइलें हटाएं

जावा कैसे करें

दो नंबर जोड़ें

जावा संदर्भ

जावा कीवर्ड जावा स्ट्रिंग तरीके जावा गणित के तरीके

जावा उदाहरण

जावा उदाहरण जावा कंपाइलर जावा व्यायाम जावा प्रश्नोत्तरी जावा प्रमाणपत्र


जावा इनर क्लासेस


जावा इनर क्लासेस

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

आंतरिक वर्ग तक पहुँचने के लिए, बाहरी वर्ग का एक ऑब्जेक्ट बनाएँ, और फिर आंतरिक वर्ग का एक ऑब्जेक्ट बनाएँ:

उदाहरण

class OuterClass {
  int x = 10;

  class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

// Outputs 15 (5 + 10)


निजी आंतरिक वर्ग

"नियमित" वर्ग के विपरीत, एक आंतरिक वर्ग privateया हो सकता है protectedयदि आप बाहरी वस्तुओं को आंतरिक वर्ग तक नहीं पहुँचाना चाहते हैं, तो कक्षा को इस प्रकार घोषित करें private:

उदाहरण

class OuterClass {
  int x = 10;

  private class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

यदि आप किसी बाहरी वर्ग से किसी निजी आंतरिक वर्ग तक पहुँचने का प्रयास करते हैं, तो एक त्रुटि उत्पन्न होती है:

Main.java:13: error: OuterClass.InnerClass has private access in OuterClass
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
              ^



स्टेटिक इनर क्लास

एक आंतरिक वर्ग भी हो सकता है static, जिसका अर्थ है कि आप बाहरी वर्ग की वस्तु बनाए बिना इसे एक्सेस कर सकते हैं:

उदाहरण

class OuterClass {
  int x = 10;

  static class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass.InnerClass myInner = new OuterClass.InnerClass();
    System.out.println(myInner.y);
  }
}

// Outputs 5

नोट:static विशेषताओं और विधियों की तरह , एक staticआंतरिक वर्ग के पास बाहरी वर्ग के सदस्यों तक पहुंच नहीं है।


आंतरिक कक्षा से बाहरी कक्षा तक पहुँचें

आंतरिक वर्गों का एक फायदा यह है कि वे बाहरी वर्ग की विशेषताओं और विधियों तक पहुँच सकते हैं:

उदाहरण

class OuterClass {
  int x = 10;

  class InnerClass {
    public int myInnerMethod() {
      return x;
    }
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.myInnerMethod());
  }
}

// Outputs 10