Inicialização de campos

2 respostas
renatosilva

Qual é a melhor forma de inicializar campos: no construtor ou na declaração?
Exemplo:

private String element, indent;
	private List declarations;
	private List attributes;

	public XMLFormatter() {
		this.element = "default";
		this.indent = "    ";
		declarations = new LinkedList();
		attributes = new LinkedList();

	}

Ou…

private String element = "default", indent = "    ";
	private List declarations = new LinkedList();
	private List attributes = new LinkedList();;

	public XMLFormatter() {
		// desnecessário
	}

Qual a diferença?

2 Respostas

Rafael_Steil

Nenhuma. Todas as variaveis de instancia serao iniciadas quando vc der um new, independentemente de estarem no construtor ou na declaracao.

Rafael

T

Onde for mais claro e menos confuso.
Se sua classe tem N construtores, e para cada construtor os valores para inicializar os campos são os mesmos, é melhor inicializar os campos diretamente.
Se sua classe tem apenas 1, tanto faz. (Eu prefiro pôr nos campos quando o valor é “quase constante”, ou seja, provavelmente não será modificado durante a execução ou a construção, e no construtor, quando sei que o valor será modificado depois.)

Criado 22 de dezembro de 2004
Ultima resposta 22 de dez. de 2004
Respostas 2
Participantes 3