Hay muchas buenas respuestas, pero hay otra razón muy pequeña para poner en this
todas partes. Si ha intentado abrir sus códigos fuente desde un editor de texto normal (por ejemplo, un bloc de notas, etc.), el uso this
hará que sea mucho más claro de leer.
Imagina esto:
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;
}
}
}
Esto es muy claro para leer con cualquier IDE moderno, pero será una pesadilla total para leer con un editor de texto normal.
Te costará descubrir dónde foo
reside, hasta que uses la función "buscar" del editor. Entonces gritarás getStringFromSomewhere()
por la misma razón. Por último, después de que hayas olvidado lo que s
es, eso bar = s
te dará el golpe final.
Compáralo con esto:
public void doSomething() {
// More codes
Hello.this.foo = "FOO";
// More codes
String s = Hello.this.getStringFromSomewhere();
// More codes
this.bar = s;
}
- Sabes que
foo
es una variable declarada en clase externa Hello
.
- Sabes que también
getStringFromSomewhere()
es un método declarado en la clase externa.
- Sabes que
bar
pertenece a la World
clase, y s
es una variable local declarada en ese método.
Por supuesto, cada vez que diseñas algo, creas reglas. Así, mientras que el diseño de su API o proyecto, si sus reglas incluyen "si alguien abre todos estos códigos fuente con un bloc de notas, él o ella le debe disparar / a sí misma en la cabeza", entonces usted está totalmente bien no hacer esto .