publicclassTeste{publicstaticvoidmain(String[]args){Aa=newA();}}classA{static{System.out.println("Parece ser um construtor!");}}
Alguém sabe o que significa essa declaração estática? Ele imprime a mensagem na saida toda vez que se instancia a classe “A”! É um construtor estático?
Pense comigo, um construtor cria uma instancia da classe, membros estaticos não pertencem a instancias, portanto não existem construtores estaticos, se você não vai instanciar a classe…
esse bloco static é executado como qualquer outro membro static, quando a classe é carregada pelo ClassLoader, é um bloco da classe…
R
RaulCarlinPJ
É um bloco estático, não um construtor estático…
Ele é acessado na primeira instancia da classe… ou seja… segue os mesmos conceitos do static, como variável, métodos, etc… é como se ele fosse o mesmo pra qualquer instancia, deu pra sacar?
Quando você tem uma variável static, ela é a mesma pra qualquer instancia daquele objeto correto? O mesmo ocorre para os blocos estáticos, eles só serão acessados na primeira instancia do objeto.
Pra testar, crie umas 10 instancias de A e veja o resultado.
Desculpa a forma de explicar, mas é como eu entendo isto.