No es una respuesta (así que siéntase libre de votarlo), pero no podría incluir esto en un comentario donde alguien estaba preguntando.
Mucha gente usa "esto".x" para diferenciar visualmente las variables de instancia de variables y parámetros locales
para que pudieran hacer esto:.
private int sum;
public int storeSquare (int b) {
int c=b*b;
this.sum+=c; // Makes sum "pop" I guess
return c;
}
Personalmente creo que es un mal hábito: cualquier editor utilizable pondrá instancia y variables locales de una manera diferente color para usted confiablemente - no requiere ningún patrón de falible humano.
Hacerlo con "esto." es solo 50% seguro. Seguro que el compilador lo detectará si intenta poner esto.x cuando x es una variable local, pero no hay nada que te impida desde "Olvidar" etiquetar una variable de instancia con esto. Y si olvidas marque solo uno (o si alguien más trabaja en su código) y está confiando en el patrón, entonces el patrón puede ser más dañino que bueno
Personalmente estoy bastante seguro de que el patrón proviene de la incomodidad de los programadores (legítimos) con el hecho de que en este caso:
public void setMe(int me) {
this.me=me;
}
el hecho de que necesita "esto." frente al me está determinado por el nombre del parámetro - Estoy de acuerdo que sólo se siente descuidado. Quieres ser consistente, si lo necesitas. delante de mí, ¿por qué no usarlo siempre?
Aunque comprendo la incomodidad, escribo esto. cada lugar donde se usa una variable de instancia es simplemente pedante, inútil, feo y poco confiable. Si realmente te molesta y absolutamente necesitas para usar un patrón para resolverlo, prueba el hábito de poner "p" delante de tus parámetros. Como efecto secundario, se debe incluso hacer que sea más constante porque el caso de parámetros ahora coincidirá con el caso método ..
public void setMe(int pMe)
Um, sugerí con tapa basa en http://stackoverflow.com/questions/516291/the-use-of- esto-en-java, pero ya no creo que estén lo suficientemente cerca. –
He entendido lo que significa "esto", un solo "esto" se puede usar si desea hacer referencia a la instancia actual completa del objeto, o cualquier elemento del objeto, es decir, este.instanciaVar.Pero a veces necesita usar "this" - en el constructor, si el argumento es el mismo: this.var = var.Pero para los métodos? – user42155
He actualizado mi respuesta para mostrar dónde podría ser necesario también en un método, por exactamente la misma razón. Sin embargo, cambiar los nombres de los parámetros elimina la necesidad de esto. –