Java Construtores e Herança. Linguagem Java. A construção de objetos é feita subindo-se a hierarquia da Classe:
– O passo 5 sempre é feito, independente se explicitamente ou implicitamente, só não é feito em java.lang.Object porque ele ja é TOPO da hierarquia.
Se houver uma chamada explicita a this para outro construtor, entra outro construtor e incia-se do numero 3 em diante.
aload_0 é o this, ou seja uma referência a Constant Pool, que depois será Runtime Constant Pool e consequentemente com dynamic Linking a Heap
Sabemos que this ou super devem esta na primeira linha do construtor, logo se temos this não temos super e se temos super não temos this, Pois ambos tem que estar na primeira linha do construtor.
Na instrução 8, ele invoca o construtor da propria Classe e passa como parametros oque esta na Operand stack logo estamos no Construtor da classe.
Isso indica que é da própria classe: porque antes de não tem especificação de classe nenhuma //Method “init>”: Na verdade o init seria com init estaria entre os é que o blog da problemas com isso.
Aqui tem this explicito, logo vamos pra o outro construtor da classe:(Perceba que o construtor invocou esse outro construtor, veja que eles tem Argumentos diferentes)
4 – Tem this explicito? Se tiver executa this, isso se this for chamada a outro construtor – Nesse caso não tem chamada a this dentro do construtor
5 – Chamar super(), implicito ou explicito(De qualquer modo ele sempre é chamado), Podemos ver isso na instrução:
Ou seja invoca-se o construtor da classe java.lang.Object, A superClasse de toda classe em java.Na verdade a instrução init> esta faltando um <.... que o blog da problema pois trabalha como edi em html tamb na verdade seria algo assim... ....>init> com o
3 – Verifica-se se Parametros e argumentos tem mesmo tipo,ordem,quantidade(Não Tem, pois o construtor não tem argumentos e logo não passamos parametros!!!)
5 – Chamar super(), implicito ou explicito(De qualquer modo ele sempre é chamado)(java.lang.Object é root da hierarquia logo , não temos SuperClass)
Nesse caso não temos, pois as variaveis de instancia forão declaradas somente e não inicializadas ao declarar
É bom lembrar, que se tivermos “n” classes antes de chegar em java.lang.Object o processo é feito em cada uma das SuperClasses até root,
Nesse caso se instanciarmos um objeto do tipo Chefe, o passo 1 e 2 só são feitos uma vez e o resto dos passos é feito a cada hierarquia ate java.lang.Object...