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".