2010-01-13 28 views

Respuesta

5

Puede usar el que desee en la mayoría de los casos. Si su parámetro de método o variable local tiene el mismo nombre, deberá usar this para distinguir la variable de instancia. ¡Se consistente!

+1

O una variable local (menos común). Si tienes una clase local, entonces es un desastre. –

4

Puedes hacer cualquiera de los dos, es solo cuestión de gustos, pero he visto un montón de código Java usar "esto". porque los argumentos para el método reciben el mismo nombre que el campo de miembro muchas veces.

Podría argumentar que usar "esto". también ayuda a la legibilidad, porque inmediatamente sabe que es miembro, pero también podría argumentar que "esto". lastima la legibilidad, porque es solo una palabra extraña.

+0

pero dado que si su parámetro es la misma palabra y tiene que usar esto, entonces probablemente sea mejor seguir con esto por conveniencia :) – ajsie

+0

@noname - Si el nombre de su parámetro y su nombre son los mismos, entonces debería elija mejores nombres para sus variables. Esto ayuda a la legibilidad mucho más que el 'esto'. – Robin

2

sólo uso this. en dos circunstancias:

  1. para eliminar la ambigüedad entre el campo y un local del mismo nombre, para ejemplo en un setter;
  2. Cuando mi método tiene un parámetro that , porque this y that para hacer buen código legible.
+0

oh, soy nuevo en Java, y aún no he llegado a "eso". es bueno saber de antemano lo que encontraré en mi libro :) – ajsie

+1

Probablemente no lo encuentres en el libro; es solo un buen nombre de parámetro para usar cuando trabajas con otro objeto de la misma clase. Como, por ejemplo, una clase Point podría tener el método distanceTo (Señalar eso). Luego, restar "this.x - that.x" me suena mejor que solo "x - that.x". –

+0

@Carl - ¿No sería 'dest' o 'destino' un mejor nombre? – Robin

0

El nombre de la variable es ok & para usar la variable de parámetro use "this".

1

Use this. - ayuda a otros programadores a identificar visualmente el uso de campos de miembros, y facilita la refactorización (por ejemplo, al considerar el traslado de un método a otra clase).

0

Soy un fanático de utilizar las funciones de idioma cuando programo en un idioma. Por lo tanto, recomendaría no usar "esto". en una variable de instancia, a menos que sea necesario para distinguirla de un parámetro de método que colisiona en el mismo nombre.

Cuestiones relacionadas