Static dentro de classe

5 respostas
andre_guitar7

O que faz esse static dentro da classe?

public class Teste{
   static{
      
   }
}
E qual é a diferença disso pra um construtor de classe?

5 Respostas

rhenrique

Isso aí (bloco estático) é executado quando a classe é carregada. É bem diferente de um construtor, que é executado quando um objeto (uma instância) é criado.

T

O bloco static é executado uma única vez quando JVM
faz a primeira chamada a sua classe.

Rafael_Nunes

Creio que a principal diferença é que o bloco static funciona como um método sem argumentos e nem tipos de retorno, ao contrário dos construtores.

andre_guitar7

Valews pessoal :smiley:

T

Esse bloco “static” existe principalmente por causa do seguinte problema: imagine que você tem uma variável estática, mas cujo conteúdo é difícil de inicializar (por exemplo, durante a inicialização pode ser que seja gerada uma Exception.), e você não quer criar uma função estática só para inicializar a tal variável. Você pode mover essa inicialização para o bloco “static”. Por exemplo:

import java.awt.Font;
class Teste {
     static Font minhaFonte; // 
     static {
          try {
              minhaFonte = Font.createFont ("bla.ttf", Font.BOLD, 10.5f);
          } catch (.....) {
               ....
          }
     }
}
Criado 10 de outubro de 2006
Ultima resposta 10 de out. de 2006
Respostas 5
Participantes 5