बहुत सारे अच्छे जवाब हैं, लेकिन this
हर जगह डालने के लिए एक और बहुत ही मामूली कारण है। यदि आपने एक सामान्य पाठ संपादक (जैसे नोटपैड आदि) से अपने स्रोत कोड खोलने की कोशिश की है, this
तो इसका उपयोग पढ़ने के लिए पूरी तरह से स्पष्ट हो जाएगा।
इसकी कल्पना करें:
public class Hello {
private String foo;
// Some 10k lines of codes
private String getStringFromSomewhere() {
// ....
}
// More codes
public class World {
private String bar;
// Another 10k lines of codes
public void doSomething() {
// More codes
foo = "FOO";
// More codes
String s = getStringFromSomewhere();
// More codes
bar = s;
}
}
}
यह किसी भी आधुनिक आईडीई के साथ पढ़ने के लिए बहुत स्पष्ट है, लेकिन यह एक नियमित पाठ संपादक के साथ पढ़ने के लिए कुल दुःस्वप्न होगा।
आप यह पता लगाने के लिए संघर्ष करेंगे कि कहाँ foo
रहता है, जब तक आप संपादक के "खोज" फ़ंक्शन का उपयोग नहीं करते हैं। फिर तुम getStringFromSomewhere()
उसी कारण चिल्लाओगे। अंत में, आप भूल गए हैं कि क्या s
है, जो bar = s
आपको अंतिम झटका देने वाला है।
इसकी तुलना इस प्रकार करें:
public void doSomething() {
// More codes
Hello.this.foo = "FOO";
// More codes
String s = Hello.this.getStringFromSomewhere();
// More codes
this.bar = s;
}
- आप जानते हैं कि
foo
बाहरी वर्ग में घोषित एक चर है Hello
।
- आप जानते हैं कि
getStringFromSomewhere()
बाहरी वर्ग में भी घोषित विधि है।
- आप जानते हैं कि
bar
यह World
वर्ग का है, और s
उस पद्धति में घोषित एक स्थानीय चर है।
बेशक, जब भी आप कुछ डिज़ाइन करते हैं, तो आप नियम बनाते हैं। इसलिए जब अपने एपीआई या परियोजना को डिजाइन करने, अपने नियमों में शामिल करता है, तो "किसी एक नोटपैड के साथ इन सभी स्रोत कोड को खोलता है, वह या वह उसे सिर में गोली मार चाहिए / खुद को," तो आप पूरी तरह से ठीक करने के लिए नहीं कर रहे हैं यह ।