If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Java programming language में variables और methods की तरह ही आप classes में inner class को भी define कर सकते हैं। जिसे Inner class कहते हैं।
Inner Class के किसी भी तरह के data members को access करने के लिए आपको outer class का object बनाना ही पड़ेगा। और outer class के object instance के through ही inner class का object बनेगा।
आप directly inner class का object
नहीं बना सकते हैं।
class OuterClass {
// define inner class.
class InnerClass {
void message() {
System.out.println("Message from inner class.");
}
}
}
public class MainClass {
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
// now create inner class Object.
OuterClass.InnerClass innerObj = outerObj.new InnerClass();
innerObj.message();
}
}
Output
Message from inner class.
●●●
जिस तरह से हम किसी class में normal static data members define करते हैं ठीक उसी तरह से किसी inner class को भी आप as a static inner class define कर सकते हैं।
चूंकि किसी भी static member को object के through access नहीं करते हैं इसलिए static inner class
के किसी भी तरह member के member को access करने के लिए outer class
का object तो नहीं बनाना पड़ेगा पर हाँ , Outer class का use जरूर करना पड़ेगा।
class OuterClass {
// define static inner class.
static class InnerClass {
// non static method.
void nonStaticMethod() {
System.out.println("Non static method of InnerClass.");
}
// static method.
static void staticMethod() {
System.out.println("Static method of InnerClass.");
}
}
}
class MainClass {
public static void main(String[] args) {
// now access inner class from Outer class.
OuterClass.InnerClass innerObj = new OuterClass.InnerClass();
innerObj.nonStaticMethod(); // access non static method.
innerObj.staticMethod(); // access static method.
}
}
Non static method of InnerClass. Static method of InnerClass.
●●●
अगर आप चाहते हैं हैं कि inner
class का object outer class के अलावा कही बाहर access न किया जा सके तो regular class की तरह ही आप need के according inner class को private और protected define कर सकते हैं।
class OuterClass {
// just define a private inner class.
private class InnerClass {}
}
class MainClass {
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
// now try to create inner class Object.
OuterClass.InnerClass innerObj = outerObj.new InnerClass();
}
}
Output
MainClass.java:10: error: OuterClass.InnerClass has private access in OuterClass OuterClass.InnerClass innerObj = outerObj.new InnerClass(); ^ MainClass.java:10: error: OuterClass.InnerClass has private access in OuterClass OuterClass.InnerClass innerObj = outerObj.new InnerClass(); ^ 2 errors
हालाँकि private
inner class को आप उसी class में access कर सकते हैं जिस class में उसे define किया गया है , means Outer class में।
public class OuterClass {
// just define a private inner class.
private class InnerClass {
void message() {
System.out.println("Message from inner class.");
}
}
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
// now you can create inner class Object.
OuterClass.InnerClass innerObj = outerObj.new InnerClass();
innerObj.message();
}
}
Output
Message from inner class.