Qual a melhor justificativa?
A. A inicialização dos atributos estáticos ocorre no método main.
B. O método main não deve instanciar nenhum objeto.
C. Nenhum objeto deve ter acesso ao método main.
D. Não há nenhum objeto instanciado quando o aplicativo inicia
execução.
Eu acredito que seja a D, mas confesso que não entendi direito. Alguém pode clarear essa pra mim?
[quote=sllalow]Qual a melhor justificativa?
A. A inicialização dos atributos estáticos ocorre no método main.
B. O método main não deve instanciar nenhum objeto.
C. Nenhum objeto deve ter acesso ao método main.
D. Não há nenhum objeto instanciado quando o aplicativo inicia
execução.
Eu acredito que seja a D, mas confesso que não entendi direito. Alguém pode clarear essa pra mim?[/quote]
A. Falsa. A inicialização dos atributos estáticos pode ocorrer em qualquer classe, pode ocorrer diretamente no atributo e pode não estar ligada ao método main.
B. Falsa. Tradicionalmente o método main instancia o primeiro objeto da aplicação.
C. Falsa. O método main é público, portanto, os objetos tem acesso a ele. Por ser estático, ele ainda fica acessível a todos os objetos.
D. Verdadeira. Pelo main ser o ponto de início da aplicação, nenhum objeto do aplicativo foi criado ainda.
PS: Na frase como está, a D também é falsa. Quando o aplicativo sobe, já foi criado o objeto do classloader, os descritores de classe, os atributos estáticos da classe onde o main está, etc. Na verdade, a razão pela qual o main é estático é uma mera convenção. É interessante porque não força o programador a instanciar nenhuma classe especial, e permite que o main seja colocado onde quiser.