Corpo Class

3 respostas
ghpm99
Bom dia, estava de curiosidade fazendo algumas coisas em Java, então decidi colocar { } entre o corpo da class mas sem nada antes, o código:
class Inicio {

	public static void main(String[] args) {
		new Inicio();
	}
	{
		System.out.println("entrou");
	}
	public void Start(){
		System.out.printf("%s","Entrou Start");
	}
	{
		Start();
	}
}

se eu rodar ele vai gerar o "entrou" e o "Entrou Start", gostaria de saber o porque, seria classes anonimas? só gostaria de saber o nome do que eu fiz ae kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

3 Respostas

angeliski

Cara, esses blocos vazios ai que você colocou são conhecidos como blocos de inicialização de variaveis. Você pode ter um bloco vazio como esses dois, eles vão ser executados na ordem que aparecem assim que a classe for instanciada, a cada instancia da classe Inicio, esses dois blocos vão rodar SEMPRE. Você pode ter blocos estaticos tambem, mas eles vão rodar só a primeira vez que a classe for instanciada ANTES do bloco de classe.

angeliski

Qualquer coisa da um toq ae! Abraço!

ghpm99

angeliski:
Cara, esses blocos vazios ai que você colocou são conhecidos como blocos de inicialização de variaveis. Você pode ter um bloco vazio como esses dois, eles vão ser executados na ordem que aparecem assim que a classe for instanciada, a cada instancia da classe Inicio, esses dois blocos vão rodar SEMPRE. Você pode ter blocos estaticos tambem, mas eles vão rodar só a primeira vez que a classe for instanciada ANTES do bloco de classe.

Acho que entendi, entao por exemplo se eu colocar um:

private final int TESTE;

{
TESTE = 1;
}

ele vai iniciar a variavel e aplicar o valor dela no bloco vazio? entao eu poderia colocar um if dentro desse bloco e verificar algum tipo de variavel para aplicar o valor dele para outra, por exemplo:

if(a){ TESTE = 1; }else{ TESTE = 0; }
Brigado consegui entender melhor o funcionamento.

Criado 14 de março de 2013
Ultima resposta 14 de mar. de 2013
Respostas 3
Participantes 2