sexta-feira, 14 de dezembro de 2012

Clonando um objeto II

Oi Pessoal,


Deixem-me consertar dois erros:
  1. esqueci de colocar na postagem anterior a classe Endereco
  2. vou apresentar uma variação melhor do primeiro exemplo para vocês verem como a clonagem funcionou

Vamos a classe
Normalmente eu encapsularia os atributos porém neste exemplo, só para ficar mais fácil deixei todos eles públicos.

No exemplo do post anterior, não ficou muito explícito que o campo interno representado pelo objeto Endereco tenha sido clonado corretamente. Por isto fiz uma variação da classe Exemplo criando Exemplo3.java.

Em Exemplo.java a alteração do endereço era feita em func2 mediante a linha

func2.endereco = new Endereco("Rua do Amendoim, 101", "Belo Horizonte", "MG", "31234-876");

como esta linha cria um novo objeto não dava para perceber se realmente a clonagem havia criado um novo objeto Endereco para func2 ou se a linha acima estava substituindo uma referência do objeto Endereco de func1 pelo que estava sendo criado.

Em Exemplo3.java vemos que não é criado um novo objeto Endereco, alteramos estado em func2 e cidade em func1. Veja na saída que somente estes valores foram alterados.


 Espero que tenha ficado mais claro agora.

Nenhum comentário:

Postar um comentário