Como usar inicializadores estáticos em java

Em Java, você pode usar blocos de inicialização

para inicializar variáveis ​​de instância. blocos de inicialização não são executados até que uma instância de uma classe é criada, então você não pode contar com eles para inicializar campos estáticos. Afinal, você pode acessar um campo estático antes de criar uma instância de uma classe.

Video: Métodos Estáticos y Variables Estáticas, Tutorial 10 Programación Java

Java fornece um recurso chamado de inicializador estático que é projetado especificamente para permitir que você inicializar campos estáticos. A forma geral de um inicializador estático parece com isso:

estático{afirmações...}

Como você pode ver, um inicializador estático é semelhante a um bloco inicializador, mas começa com a palavra estático. Tal como acontece com um bloco inicializador, você codificar inicializadores estáticos no corpo da classe, mas fora de qualquer outro bloco, como o corpo de um método ou construtor.



A primeira vez que você acessar um membro estático, como um campo estático ou um método estático, todos os inicializadores estáticos na classe são executados - desde que você ainda não tiver criado uma instância da classe. Isso porque os inicializadores estáticos também são executados a primeira vez que você criar uma instância. Nesse caso, os inicializadores estáticos são executados antes o construtor é executado.

Se uma classe tem mais de um inicializador estático, os inicializadores são executados na ordem em que aparecem no programa.

Video: 05 Certificação Java (Variável Estática)

Aqui está um exemplo de uma classe que contém um inicializador estático:

classe StaticInit {int public static x-static {x = 32 -} // outros membros da classe, como construtores e // métodos aqui ...}

Este exemplo é bastante trivial. Na verdade, você pode conseguir o mesmo efeito apenas atribuindo o valor 32 à variável quando é declarada. Se, entretanto, você teve que realizar um cálculo complicado para determinar o valor de X - ou se seu valor vem de um banco de dados - um inicializador estático poderia ser muito útil.


Publicações relacionadas