Static { }

11 respostas
renatotn7

pow quando que esse método é chamado numa classe?
em que situações eu posso usar?

11 Respostas

renatosilva

Hã?

renatotn7

eh…

static

{

BorderCorrigida = BorderFactory.createLineBorder(Color.red);

}
christianovale

Me corrijam, caso eu esteja errado.

Tudo que estiver dentro de:

static{

//…

}

será a primeira coisa a ser executada em sua classe.

luis.soares

O bloco Static {} é executado uma única vez, quando o classLoader carrega a sua classe. É diferente do construtor.

Abraço.

xandroalmeida

É executado assim que o ClassLoader carrega a classe. É a primeira coisa que acontece na classe, antes mesmo do contrutor.

bland

Aproveitando a deixa…
Poderiam dar exemplos da aplicabilidade do bloco Static { }?
Em que momento usá-lo?
E o porquê usá-lo?

Abraço a todos.

renatotn7

gente agradeço a todos as respostas,
e reforço o pedido do bland

abraços

keller

Exemplo aplicabilidade: Singleton , Factory. ( Design pattern ).
*Há como fazer sem utilizar static{} mas tudo bem.

Em que momento usar?
Quando você precisa garantir que algo esteja lá
antes mesmo do seu construtor ser invocado.

E porque usa-lo?
Respondi acima.

[s]ao :thumbup:

xandroalmeida

Inicializar variáveis static final

public class Teste { 
	 public static final Map<String, Integer> numeros;
	 static {
		 System.out.println("Executando static");
		 numeros = new HashMap<String, Integer>();
		 numeros.put("zero", 0);
		 numeros.put("um", 1);
	 	 numeros.put("dois", 2);
	 }
	 
	 Teste() {
		 System.out.println("Executando construtor " + numeros.get("zero"));
	 }
	 
	 public static void main(String[] args) {
		System.out.println("Executando main " + numeros.get("um"));
		Teste teste = new Teste();
	}
 }
CarlosEduardoDantas
static
{
BorderCorrigida = BorderFactory.createLineBorder(Color.red);
}

não é um método, mas sim um bloco de código da classe… é carregado apenas uma vez no programa, exatamente quando a classe for carregada pela JVM, o bloco executa

renatotn7

gente, valeu!!!

abraços :smiley:

Criado 23 de novembro de 2006
Ultima resposta 23 de nov. de 2006
Respostas 11
Participantes 8