चूंकि getText()
गैर-स्थैतिक है आप इसे स्थैतिक विधि से नहीं कह सकते।
यह समझने के लिए कि, आपको दोनों के बीच के अंतर को समझना होगा।
इंस्टेंस (नॉन-स्टैटिक) तरीके उन वस्तुओं पर काम करते हैं जो एक विशेष प्रकार (वर्ग) के होते हैं। इन्हें नए के साथ इस तरह बनाया गया है:
SomeClass myObject = new SomeClass();
एक इंस्टेंस विधि को कॉल करने के लिए, आप इसे इंस्टेंस पर कॉल करते हैं ( myObject
):
myObject.getText(...)
हालाँकि एक स्टैटिक मेथड / फील्ड को सीधे टाइप पर ही कॉल किया जा सकता है , इस तरह कहें:
पिछला स्टेटमेंट सही नहीं है। कोई भी स्थिर फ़ील्ड को ऑब्जेक्ट संदर्भ के साथ संदर्भित कर सकता है जैसे कि myObject.staticMethod()
लेकिन यह हतोत्साहित किया जाता है क्योंकि यह स्पष्ट नहीं करता है कि वे वर्ग चर हैं।
... = SomeClass.final
और दोनों एक साथ काम नहीं कर सकते क्योंकि वे विभिन्न डेटा स्पेस (उदाहरण डेटा और क्लास डेटा) पर काम करते हैं
मुझे कोशिश करके समझाइए। इस वर्ग पर विचार करें (psuedocode):
class Test {
string somedata = "99";
string getText() { return somedata; }
static string TTT = "0";
}
अब मेरे पास निम्नलिखित उपयोग का मामला है:
Test item1 = new Test();
item1.somedata = "200";
Test item2 = new Test();
Test.TTT = "1";
मान क्या हैं?
कुंआ
in item1 TTT = 1 and somedata = 200
in item2 TTT = 1 and somedata = 99
दूसरे शब्दों में, TTT
एक डेटाम है जिसे सभी प्रकार के उदाहरणों द्वारा साझा किया जाता है। तो यह कहने का कोई मतलब नहीं है
class Test {
string somedata = "99";
string getText() { return somedata; }
static string TTT = getText(); // error there is is no somedata at this point
}
तो सवाल यह है कि टीटीटी स्थिर क्यों है या गेटटेक्स्ट () स्थिर क्यों नहीं है?
निकालें static
और इसे इस त्रुटि को प्राप्त करना चाहिए - लेकिन यह समझने के बिना कि आपका प्रकार क्या है यह केवल एक त्रुटि वाला प्लास्टर है अगली त्रुटि तक। getText()
गैर-स्थैतिक होने के लिए इसकी क्या आवश्यकताएं हैं ?