pow quando que esse método é chamado numa classe?
em que situações eu posso usar?
Hã?
eh…
static
{
BorderCorrigida = BorderFactory.createLineBorder(Color.red);
}
Me corrijam, caso eu esteja errado.
Tudo que estiver dentro de:
static{
//…
}
será a primeira coisa a ser executada em sua classe.
O bloco Static {} é executado uma única vez, quando o classLoader carrega a sua classe. É diferente do construtor.
Abraço.
É executado assim que o ClassLoader carrega a classe. É a primeira coisa que acontece na classe, antes mesmo do contrutor.
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.
gente agradeço a todos as respostas,
e reforço o pedido do bland
abraços
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:
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();
}
}
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
gente, valeu!!!
abraços