Es gibt viele gute Antworten, aber es gibt noch einen sehr kleinen Grund, this
überall zu setzen . Wenn Sie versucht haben, Ihre Quellcodes mit einem normalen Texteditor (z. B. Notizblock usw.) zu öffnen, verwenden Siethis
wird das Lesen durch viel einfacher.
Stell dir das vor:
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;
}
}
}
Dies ist mit jeder modernen IDE sehr klar zu lesen, aber mit einem normalen Texteditor ist dies ein Albtraum.
Sie werden Schwierigkeiten haben, herauszufinden, wo sich der foo
Speicher befindet, bis Sie die Suchfunktion des Editors verwenden. Dann wirst du getStringFromSomewhere()
aus dem gleichen Grund anschreien . Schließlich, nachdem Sie vergessen haben, was s
ist, bar = s
wird das Ihnen den letzten Schlag geben.
Vergleichen Sie es damit:
public void doSomething() {
// More codes
Hello.this.foo = "FOO";
// More codes
String s = Hello.this.getStringFromSomewhere();
// More codes
this.bar = s;
}
- Sie wissen, dass
foo
es sich um eine in der äußeren Klasse deklarierte Variable handelt Hello
.
- Sie wissen, dass
getStringFromSomewhere()
es sich auch um eine Methode handelt, die in der äußeren Klasse deklariert ist.
- Sie wissen, dass dies
bar
zur World
Klasse gehört und s
eine lokale Variable ist, die in dieser Methode deklariert ist.
Wenn Sie etwas entwerfen, erstellen Sie natürlich Regeln. So , während die API oder Projekt entwerfen, wenn Ihre Regeln sind „ wenn jemand öffnet alle diese Quellcodes mit einem Notizblock, sollte er oder sie ihn erschießen / sich in den Kopf,“ dann sind Sie völlig in Ordnung , nicht zu tun dies .