क्या हो रहा है जब एक के अंदर एक सदस्य के classरूप में घोषित किया जाता है static..? सदस्यों को बिना इंस्टेंट किए एक्सेस किया जा सकता है class। इसलिए बाहरी वर्ग (शीर्ष स्तरीय वर्ग) बनाने staticका कोई अर्थ नहीं है। इसलिए इसकी अनुमति नहीं है।
लेकिन आप आंतरिक कक्षाओं को स्थिर के रूप में सेट कर सकते हैं (जैसा कि यह शीर्ष स्तर वर्ग का सदस्य है)। फिर उस क्लास को टॉप लेवल क्लास को इंस्टेंट किए बिना पहुँचा जा सकता है। निम्नलिखित उदाहरण पर विचार करें।
public class A {
public static class B {
}
}
अब, एक अलग वर्ग के अंदर C, वर्ग Bका उदाहरण दिए बिना कक्षा तक पहुँचा जा सकता है A।
public class C {
A.B ab = new A.B();
}
staticकक्षाओं में non-staticसदस्य भी हो सकते हैं । केवल वर्ग स्थिर हो जाता है।
लेकिन यदि staticकीवर्ड को कक्षा से हटा दिया जाता है B, तो उसे बिना किसी इंस्टेंस के सीधे एक्सेस नहीं किया जा सकता है A।
public class C {
A a = new A();
A.B ab = a. new B();
}
लेकिन हमारे पास staticएक non-staticआंतरिक वर्ग के सदस्य नहीं हो सकते ।