Oi pessoal,

        somente um ponto voce esqueceu de falar. A interface Cloneable nao
possui metodo nenhum. Ela, como a interface Serializable, eh usada somente
para marcar uma classe, estabelecendo o "contrato" (e isso eh um Design
Pattern).

        Em qualquer classe, mesmo que ela nao implemente a interface
Cloneable, voce pode escrever um metodo que copie o objeto atual e retorne
a copia. Acontece que se voce for usar o metodo clone da classe Object,
voce *deve* fazer com que sua classe implemente a interface Cloneable,
pois a implementacao do metodo clone na classe Object requer essa
interface implementada (como disse anteriormente, somente como marcacao).

        Resumindo: eh desejavel que voce implemente a interface Cloneable,
mas nao eh obrigatorio. A obrigatoriedade advem do fato de voce usar o
metodo clone da classe Object (super.clone), que requer essa interface
implementada.

Abracos,

Bruno.


On Tue, 18 Jul 2000, Tetsuo wrote:

>     Cloneable eh uma interface, isto eh, contem apenas uma declaracao padrao
> para o metodo clone(). Para obter uma copia do objeto, vc tem que criar uma
> nova instancia do objeto, com os mesmos atributos do objeto original. Isto
> geralmente eh feito implementando-se a interface Cloneable, para manter uma
> padronizacao (ie, vc pode juntar objetos completamente diferentes, mas que
> implementam a interface Cloneable, num array do tipo Cloneable[]), mas isto
> nao eh obrigatorio.
> 
> Exemplo:
> 
> public class DollyLabel extends Label implements Cloneable {
>     private int id;      // atributo privado sem acesso direto por metodos
> 'set'
> 
>     public DollyLabel(String tex) {
>         super(tex);
>     }
> 
>     ...
> 
>     public Object clone() {
>         DollyLabel dolly = new DollyLabel(this.getText());
>         dolly.id = this.id;     // Isso pode ser feito, pois este objeto eh
> da mesma classe que dolly
>         return (Object)dolly;   // Este cast eh feito automaticamente, mas
> eh preciso fazer outro
>                                 //   cast para usar dolly como DollyLabel!
>     }
>     public DolllyLabel dollyClone() {
>         DollyLabel dolly = new DollyLabel(this.getText());
>         dolly.id = this.id;
>         return dolly;           // Este clone nao necessita de cast, pois ja
> retorna do tipo DollyLabel
>     }
> }
> 
> 
> 
> ----- Original Message -----
> From: Javanes <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
> <[EMAIL PROTECTED]>; DANIEL VIEIRA VIVEIROS
> <[EMAIL PROTECTED]>
> Sent: Tuesday, July 18, 2000 10:07 AM
> Subject: Re: [SouJava-J] Copias de objetos
> 
> 
> > Eu tentei usar a classe clonable mas não tive sucesso.
> > Alguém tem algum código que exemplifique a utilização do clone ????
> > Obrigado.
> >
> > Fabio Rodrigues - Telematica wrote:
> > >
> > > DANIEL VIEIRA VIVEIROS wrote:
> > >
> > > > Oi,
> > > >
> > > > Como faco para criar objetos identicos sem que eles compartilhem o
> mesmo
> > > > endereco de memoria ?
> > > >
> > > > Obrigado,
> > > > Daniel
> > > >
> 
> 
>     --------------------------- LISTA SOUJAVA ---------------------------
>     http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>     [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
>     [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>     [regras da lista: http://www.soujava.org.br/regras.htm]
>     ---------------------------------------------------------------------
> 


______________________________________________________________
Bruno Diniz de Paula
[EMAIL PROTECTED] - UFMG

"Coracoes ao alto e pes no chao."

"A verdadeira experiencia com Deus nao nos faz
 fugir da realidade, mas nos da forcas para
 enfrenta-la e transforma-la."

Pe. Zeca

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    [regras da lista: http://www.soujava.org.br/regras.htm]
    ---------------------------------------------------------------------

Responder a