¿Debería usar "this.variablename" o simplemente "variablename" para hacer referencia a una variable miembro en un método?usando esto para llamar a una variable de instancia?
Respuesta
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!
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.
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
@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
sólo uso this.
en dos circunstancias:
- para eliminar la ambigüedad entre el campo y un local del mismo nombre, para ejemplo en un setter;
- Cuando mi método tiene un parámetro
that
, porquethis
ythat
para hacer buen código legible.
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
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". –
@Carl - ¿No sería 'dest' o 'destino' un mejor nombre? – Robin
El nombre de la variable es ok & para usar la variable de parámetro use "this".
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).
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.
- 1. Asignando 'esto' a una variable en Javascript
- 2. python: Accediendo a una variable de instancia usando un nombre que contiene una variable
- 3. Llamar a una variable de otra clase
- 4. Almacenando $ (esto) en una variable
- 5. Agregando una variable de instancia a una clase en Ruby
- 6. php: Llamar a clases estáticas a través de una variable
- 7. usando jquery $ .ajax para llamar a una función PHP
- 8. Acceder a una variable local después de "eliminar esto"
- 9. Diferencia de Javascript entre llamar a una función y crear una instancia de una función
- 10. Propiedad frente a variable de instancia
- 11. ¿Cómo llamar a la función javascript asignada a una variable?
- 12. ¿Cómo configuro un attr_accessor para una variable de instancia dinámica?
- 13. Llamar a un getter varias veces o llamar una vez y asignar a una variable?
- 14. llamar a una función llamada jQuery en una variable
- 15. Al llamar a una función de Javascript, ¿cómo configuro un valor personalizado de "esto"?
- 16. PHP5.3: error de "Llamar al método indefinido" al llamar a invocar desde la variable de clase
- 17. No se puede encontrar una instancia para la variable
- 18. ¿Qué es una variable de instancia?
- 19. ¿Utiliza 'esto' delante de variables de instancia?
- 20. Usando nuevo (esto) para reutilizar constructores
- 21. Si detengo una instancia de Amazon EC2, ¿está esto guardado?
- 22. Variable de instancia de CoffeeScript
- 23. Cómo llamar a la función usando el valor almacenado en una variable?
- 24. Usando NiceMock como variable de instancia con GoogleMock
- 25. ¿Se puede llamar esto recursivo?
- 26. Pasar $ (esto) a una función
- 27. ¿Agregar una propiedad sin una variable de instancia?
- 28. NSString con Instancia variable
- 29. ¿Una propiedad @ privada crea una variable de instancia @private?
- 30. ¿Puedo prohibir llamar a métodos estáticos en instancia de objeto?
O una variable local (menos común). Si tienes una clase local, entonces es un desastre. –