Este blog irá ilustrar o uso de blocos estáticos em Java.
O que são “Blocos Estáticos” em Java?
Um bloco é alocado como “ estático ” associando a palavra-chave static a ela. Esses blocos têm precedência maior do que “ principal ” de modo que sejam executados antes do “ principal() ” método.
Sintaxe
classMain {
estático {
Sistema . fora . println ( 'Olá Mundo' ) ;
} }
Na sintaxe acima, o bloco incluído é atribuído como “ estático ” e será invocado antes do main.
Considerações importantes sobre “blocos estáticos”
- Blocos estáticos em Java são invocados automaticamente quando a classe é carregada na memória.
- Eles são executados apenas uma vez, mesmo se vários objetos de classe forem criados.
- Não há limitação/restrição no número de blocos de inicialização estáticos dentro de uma classe.
- Esses blocos também podem ser utilizados para inicializar as variáveis estáticas.
Exemplo 1: Utilização de “Blocos Estáticos” em Java
Neste exemplo, o bloco estático pode ser usado para observar a sequência na qual ele pode ser executado em relação ao principal:
publicclass Exemplo {
estático {
Sistema . fora . println ( 'Este é um bloco estático!' ) ;
}
publicstaticvoidmain ( Corda [ ] argumentos ) {
Sistema . fora . println ( 'Isso é principal!' ) ;
} }
No bloco de código acima, basta incluir um “ estático ” acumulando a mensagem declarada e na próxima etapa, exiba a mensagem dada em “ principal ”.
Saída
Nesta saída, pode-se analisar que o bloco estático é invocado antes do principal.
Exemplo 2: Executando valor estático dentro de “bloco estático” em Java
Nesta ilustração em particular, um valor estático pode ser inicializado no bloco estático e posteriormente exibido no principal:
classe personalizada {staticint eu ;
estático {
eu = 10 ;
Sistema . fora . println ( 'Bloco estático chamado!' ) ;
} }
publicclass Exemplo {
publicstaticvoidmain ( Corda [ ] argumentos ) {
Sistema . fora . println ( personalizado. eu ) ;
} }
Nas linhas de código acima:
- Primeiro de tudo, crie uma classe chamada “ personalizado ”.
- Dentro da classe, especifique um “ estático ” variável e inicializá-lo no alocado “ estático ' bloquear.
- Por fim, invoque a variável inicializada no main referindo-se à classe na qual ela está contida.
Saída
No resultado acima, pode-se perceber que, da mesma forma, o “ estático ” é executado primeiro e o valor inicializado neste bloco também é exibido, respectivamente.
Exemplo 3: Executando “Bloco Estático” Antes do Construtor
Neste exemplo, o bloco estático pode ser especificado antes do construtor, e sua precedência e execução podem ser observadas de acordo:
classe personalizada {estático {
Sistema . fora . println ( 'Este é um bloco estático' ) ;
}
personalizado ( ) {
Sistema . fora . println ( 'Isto é um Construtor' ) ;
} }
publicclass Exemplo {
publicstaticvoidmain ( Corda [ ] argumentos ) {
obj1 personalizado = novo personalizado ( ) ;
obj2 personalizado = novo personalizado ( ) ;
} }
Nas linhas de código acima:
- Da mesma forma, defina uma classe chamada “ personalizado ”.
- Agora, especifique o “ estático ” e inclua o construtor de classe, ou seja, “ personalizado() ” tendo as mensagens indicadas, respectivamente.
- No principal, crie dois objetos da classe criada para invocar as funcionalidades da classe na ordem de precedência correspondente.
Saída
Nesta saída, as seguintes considerações podem ser realizadas:
- O bloco estático recebe maior precedência em comparação com o construtor contido.
- Dois objetos da classe são criados, mas o bloco estático é executado uma vez, conforme discutido anteriormente.
Conclusão
O ' blocos estáticos ” em Java executam apenas uma vez quando uma classe é carregada na memória e são executados antes do “ principal() ” método. Os exemplos discutidos no artigo provam que esses blocos têm precedência maior que o main e o construtor de classe, respectivamente, e são invocados apenas uma vez, independentemente do número de objetos criados. Este blog discutiu o uso de blocos estáticos em Java.