Objetos e ponteiros

Pessoal,

minha situação está acontecendo em SuperWaba mas como é Java, tem a ver. Muito a ver.

Bom, tenho dois objetos do tipo Date, dataPedido e dataPagamento.

dataPedido tem a data atual e dataPagamento possui um valor referente ao prazo dado.

Eu faço

  Date dataPedido, dataPagamento;
  dataPedido = new Date(); //recebe a data de hoje
  dataPagamento = dataPedido;
  dataPagamento.advance(10); //adicionando 10 dias no prazo de pagto

E, após feito isso a dataPedido também estava adiantada 10 dias.

Muito interessante, pois no debug do eclipse ambos estavam com o mesmo id = 37.

Quando eu fiz
dataPagamento = dataPedido
ele num copia o objeto não? Pelo jeito só fez uma referência.

Eu to postando pq eu achei interessante. Isso pode ser perigoso, dependendo do que se faz, pois eu pensava que ao fazer a atribuição era feita uma cópia.

é feita uma copia do objeto, mas os dois ficam apontando para o mesmo lugar na memoria.

[]'s

Java trabalha com cópia de referências. Isso já foi discutido aqui.

Não é eita cópia de objeto algum, só de referência.

[]s

onde escrevi objeto, leia-se referencia… :oops:

[]'s

[quote=jgbt]

é feita uma copia do objeto, mas os dois ficam apontando para o mesmo lugar na memoria.

[]'s [/quote]

Isso com qualquer objeto?

Qual a melhor maneira de instanciar um novo objeto com todos os valores do anterior?

[quote=fzampa][quote=jgbt]
é feita uma copia do objeto, mas os dois ficam apontando para o mesmo lugar na memoria.
[/quote]

Isso com qualquer objeto?
[/quote]

Não é feita cópia de objeto, é uma cópia de referência! Dois lugares apontam para o mesmo objeto, anda além da referência (do ‘endereço de memória’) é copiado.

Implemente Clonneable e use o método clone().

[]s

Aaaaaaaaaaaaa Boooommmmmmmm

:smiley: