@Luccas_Oliveira até onde eu sei, é o bloco inicializador static. Tentei criar um exemplo p/ entender sua utilidade.
classMotor{intcilindrada;intqtdPistoes;doublepotenciaMotor;intnumeroDeSerie;}classDellReyUmPontoOito{privatestaticMotormotor;static{motor=newMotor();motor.cilindrada=130;motor.qtdPistoes=4;motor.potenciaMotor=1.8;}publicDellReyUmPontoOito(){motor.numeroDeSerie++;System.out.println("Poder: "+motor.cilindrada+" com seu incrivel motor "+motor.potenciaMotor+" Serie:"+motor.numeroDeSerie);}publicstaticintgetUltSerieMotor(){returnmotor.numeroDeSerie;}}classDellReyDoisPontoZero{privatestaticMotormotor;static{motor=newMotor();motor.cilindrada=158;motor.qtdPistoes=4;motor.potenciaMotor=2.0;}publicDellReyDoisPontoZero(){motor.numeroDeSerie++;System.out.println("Poder: "+motor.cilindrada+" com seu incrivel motor "+motor.potenciaMotor+" Serie:"+motor.numeroDeSerie);}publicstaticintgetUltSerieMotor(){returnmotor.numeroDeSerie;}}
Execução:
publicstaticvoidmain(String[]args){DellReyUmPontoOitodellRey1=newDellReyUmPontoOito();DellReyUmPontoOitodellRey2=newDellReyUmPontoOito();DellReyDoisPontoZerodellRey3=newDellReyDoisPontoZero();System.out.println("Ultima serie de motor 1.8 :"+dellRey1.getUltSerieMotor());System.out.println("Ultima serie de motor 2.0 :"+dellRey3.getUltSerieMotor());}
Ou seja no meu exemplo limitamos o número de serie do motor dos DellRey’s entre o 1.8 e o 2.0. E podemos ter esta serie sem a necessidade de instanciar nossa classe(afinal é uma das funcionalidades do static). Desculpa o exemplo não ser mais sucinto e coeso, mas espero que o ajude.
Compreendi a sua lógica no exemplo acima, porém ainda me resta a dúvida sobre esse “tal bloco inicializador”.
É a primeira vez que vejo essa implementação.
Gostaria de saber o porque e em quais momentos/necessidades utilizar o mesmo?
Você possui alguma definição e/ou conceito de tal bloco?
Desde já muito obrigado e em todo caso também farei algumas pesquisas sobre tal, pois definições diferenciadas me ajuda a fazer uma melhor analogia.