कोई जवाब नहीं है (इसलिए इसे वोट करने के लिए स्वतंत्र महसूस करें), लेकिन मैं इसे किसी टिप्पणी में फिट नहीं कर सका जहां कोई पूछ रहा था।
बहुत से लोग इसका उपयोग करते हैं।एक्स "नेत्रहीन स्थानीय चर और मानकों से उदाहरण चर अंतर करने के लिए
तो वे ऐसा होगा:।
private int sum;
public int storeSquare (int b) {
int c=b*b;
this.sum+=c; // Makes sum "pop" I guess
return c;
}
निजी तौर पर मुझे लगता है कि यह एक बुरी आदत है
: किसी भी प्रयोग करने योग्य संपादक एक अलग में उदाहरण और स्थानीय चर डाल देंगे आपके लिए रंग विश्वसनीय रूप से - इसे किसी भी मानव-गिरावट वाले पैटर्न की आवश्यकता नहीं है।
इसे "यह" के साथ करना। केवल 50% सुरक्षित है। निश्चित रूप से संकलक इसे पकड़ लेगा यदि आप इसे x.x को रखने का प्रयास करते हैं एक स्थानीय चर है, लेकिन ऐसा कुछ भी नहीं है जो आपको "फोर्जेटिंग" से रोकने के लिए एक इंस्टेंस वैरिएबल को टैग करने से रोक देगा।, और यदि आप भूल जाते हैं केवल एक टैग करें (या यदि कोई अन्य आपके कोड पर काम करता है) और आप पैटर्न पर भरोसा कर रहे हैं, तो पैटर्न अच्छा
व्यक्तिगत रूप से मुझे यकीन है कि पैटर्न प्रोग्रामर (सही) असुविधा से उत्पन्न होता है तथ्य यह है कि इस मामले में:
public void setMe(int me) {
this.me=me;
}
तथ्य यह है कि आप की जरूरत है "यह।" मेरे सामने पैरामीटर का नाम से निर्धारित होता है - मैं मानता हूँ कि यह सिर्फ लापरवाही से महसूस करता है। आप लगातार रहना चाहते हैं - अगर आपको इसकी ज़रूरत है। मेरे सामने, हमेशा इसका उपयोग क्यों नहीं करते?
हालांकि मैं असुविधा को समझता हूं, इसे टाइप करता हूं। एक एकल चर जो एक आवृत्ति चर का उपयोग किया जाता है, केवल पैडेंटिक, व्यर्थ, बदसूरत और अविश्वसनीय है। यदि यह वास्तव में आपको परेशान करता है और आप इसे हल करने के लिए पैटर्न का उपयोग करने के लिए की आवश्यकता है, तो अपने पैरामीटर के सामने "पी" डालने की आदत का प्रयास करें। एक पक्ष प्रभाव के रूप में, यह भी इसे और अधिक स्थिर बनाना चाहिए क्योंकि पैरामीटर मामले अब विधि मामले से मेल खाएगा ..
public void setMe(int pMe)
स्रोत
2009-02-05 18:47:12
उम, मैं http://stackoverflow.com/questions/516291/the-use-of- के आधार पर बंद करने से सुझाव इन-इन-जावा लेकिन मुझे अब नहीं लगता कि वे काफी करीब हैं। –
मुझे समझ में आया है कि "यह" क्या मतलब है- "एकल" का उपयोग तब किया जा सकता है यदि आप ऑब्जेक्ट के पूरे वर्तमान उदाहरण, या ऑब्जेक्ट के किसी भी तत्व, यानी this.instanceVar को संदर्भित करना चाहते हैं। लेकिन कभी-कभी आपको उपयोग करने की आवश्यकता होती है "यह" - निर्माता में, यदि तर्क समान है: this.var = var.But तरीकों के लिए? – user42155
मैंने यह दिखाने के लिए अपना जवाब अपडेट कर दिया है कि एक ही कारण में, यह एक विधि में भी आवश्यक हो सकता है। पैरामीटर नाम बदलना इसके लिए आवश्यकता को हटा देता है, हालांकि। –