class Sub {
static int y;
public static void foo() {
this.y = 10;
}
}
मैं समझता हूँ कि this
वस्तु विधि लागू प्रतिनिधित्व करता है और है कि स्थिर तरीकों किसी भी वस्तु के लिए बाध्य नहीं कर रहे हैं में उपयोग नहीं कर सकते क्यों 'इस' कीवर्ड। लेकिन उपर्युक्त मामले में, परिवर्तनीय वाई भी स्थिर है।हम एक स्थिर विधि
यदि हम कक्षा वस्तु पर स्थैतिक विधि का आह्वान कर सकते हैं, तो हम कक्षा के स्थैतिक चर सेट करने के लिए स्थिर विधियों को क्यों अनुमति नहीं दे सकते।
इस अतिरिक्त बाधा का उद्देश्य क्या है?
मुझे एहसास है कि यह एक प्राचीन प्रश्न है लेकिन मैं इसे एक सुंदर वैध बिंदु के रूप में +1 करना चाहता हूं। यद्यपि खेतों के लिए उत्तर सरल है (क्वालीफायर आउट छोड़ें), स्थैतिक आंतरिक वर्गों के लिए यह प्रासंगिक हो जाता है, और यह भी प्रासंगिक होता है जब आप चाहते हैं कि कक्षा के रनटाइम इंस्टेंस का संदर्भ हो। उदाहरण के लिए मैं सिंगलटन क्लास प्राप्त करने के लिए 'MyClass.class' टाइप कर सकता हूं, लेकिन केवल 'वर्ग' स्वयं ही अमान्य है और ऐसा कोई काम नहीं है। इससे कक्षा के नाम को संभावित रूप से यूनिट के माध्यम से दोहराया जा सकता है जो बहुत शुष्क नहीं है। –