Manipulação de objetos

Quando declara-se uma variável cujo tipo é o nome de uma classe, como em

   String nome;

não está se criando um objeto dessa classe, mas simplesmente uma referência para um objeto da classe String, a qual inicialmente não faz referência a nenhum objeto válido:

Referência para objeto

Quando um objeto dessa classe é criado, obtém-se uma referência válida, que é armazenada na variável cujo tipo é o nome da classe do objeto. Por exemplo, quando cria-se uma string como em

   nome = new String("POO/Java");

nome é uma variável que armazena uma referência para um objeto específico da classe String -- o objeto cujo conteúdo é "POO/Java":

Referência para objeto

É importante ressaltar que a variável nome mantém apenas a referência para o objeto e não o objeto em si. Assim, uma atribuição como

   String outroNome = nome;

não cria outro objeto, mas simplesmente uma outra referência para o mesmo objeto:

Outra referência para objeto

O único modo de aplicar os métodos a um objeto é através de uma referência ao objeto. Seguindo com o mesmo exemplo, para criar um novo objeto como mesmo conteúdo do objeto existente, o método clone() pode ser aplicado a este:

   String outraString = nome.clone();

Outra referência para outro objeto

Em Java, a palavra-chave this é utilizada por um objeto para fazer a referência a si próprio.