Duplicar posible:
Should I initialize variable within constructor or outside constructorInicialización sobre declaración contra la inicialización de constructores
me preguntaba, que es una mejor práctica y por qué. ¿Debería inicializar los campos de clase en la declaración, o debería hacerlo en el constructor? Dado que es una inicialización simple de una línea.
class Dude
{
String name = "El duderino";
Dude() {
// irrelevant code
}
}
vs
class Dude
{
String name;
Dude() {
name = "El duderino";
// irrelevant code
}
}
Editar: Soy consciente de las situaciones en las que uno de los estilos se preferirá sobre la otra como en el caso de la ejecución del código de inicialización que podría lanzar una excepción . De lo que estoy hablando aquí son casos en que ambos estilos son absolutamente equivalentes. Ambas formas cumplirían la misma tarea. ¿Qué debería usar entonces?
Esto suena razonable. Pero de lo que estaba hablando son campos que iban a ser inicializados de la misma manera, es decir, los datos recuperados de los constructores no serían utilizados. Como inicializar una Lista interna vacía para almacenar subelementos. ¿Todavía lo inicializarías en el constructor? – amrhassan
@amrhassan - En ese caso, no, yo lo inicializaría cuando se declare, y declararía que es 'final '. – erickson
Puedo ver el motivo por el cual es 'final' en tu ejemplo, pero ¿qué pasa si hay un setter' setName (String name) '... – knownasilya