1
resposta

Não é bem uma dúvida, é apenas um comentário sobre a ideia de referências.

Uma coisa que eu acho interessante no Java é a ideia de referência. O número/endereço de uma "Gaveta Virtual", onde dentro se encontra um objeto. Então, como no exemplo sugerido, eu tenho uma classe Conta e uma classe Cliente. Quando eu faço o comando "System.out.println(conta1.titularX.nome);", o passo a passo dentro do software seria: vai até o almoxarifado RAM, acha a gaveta com o endereço "conta1", lá vai ter um endereço "titularX" de uma segunda gaveta. Dentro dessa segunda gaveta vai ter o endereço "nome" de uma terceira gaveta. Dentro dessa terceira gaveta você encontra um objeto de natureza String com um valor. Pega esse valor dentro desse objeto dentro dessa terceira gaveta e imprime... Ou seja, eu tenho o endereço conta1 de uma gaveta com um objeto Conta dentro. Aí dentro desse objeto Conta eu tenho o endereço titularX de uma outra gaveta com um objeto Cliente dentro. Aí dentro do objeto Cliente eu tenho o endereço nome de uma outra gaveta com um objeto String dentro, e só aí, dentro do Objeto String é que eu tenho o valor final. Ou seja, só a "busca" por conta1.titularX.nome já é em si um belo passeio pelo bloco de RAM do computador, o "Almoxarifado Virtual".

1 resposta

Oie Rafael, tudo bem contigo?

Fico feliz que tenha decidido mandar aqui no fórum sua linha de raciocionio :)

A lógica que você abstraiu está correta e da para perceber que você entendeu como tudo acontece. Para complementar seu pensamento achei um diagrama bem legal que exemplifica bem o que você explicou, segue a foto:

Foto de um diagrama de memória que mostra as conexões que acontecem a partir de referências que um objeto do tipo "Employee" possuí.

Continue assim e bons estudos!