una pregunta que podría salir de esto es si el uso de un método en lugar de un campo de acceso directo podría disminuir el rendimiento . La respuesta no es realmente como los compiladores optimizan el código, de modo que si su método solo está haciendo return field;
, donde field
es el campo de su clase que oculta con el setter/getter, realmente accederá directamente al campo. De este modo, obtiene en la mayoría de los casos el mismo rendimiento, al mismo tiempo que mantiene la opción de cambiar más adelante los métodos set/get.
La efectiva programación en Java de Joshua Block es un gran libro con consejos sobre cómo escribir buenos códigos y explica por qué también. ¿Por qué usar setter/getter es uno de los consejos?
Nota: Es posible que observe que en algunos libros/campos de documentación que presentan un setter/getter en lugar de ser directamente accesibles se les llama 'propiedades' en lugar de campos. P.ej. en C#, incluso puede especificar que un campo es una propiedad y no necesita definir set/get más (buena característica, creo).
Es posible que desee buscar Mutator en wiki: http://en.wikipedia.org/wiki/Mutator_method – Armstrongest