View Full Version : [JAVA] Costruttore di copia... dubbio:
Ciao a tutti,
ho un dubbio...
in una classe quando creo il costruttore di copia (cioè un costruttore che accetta un oggetto della stessa classe e ne crea un altro uguale) posso accedere direttamente alle informazioni dell'oggetto passato, o devo usare un metodo accessorio?
Io penso che essendo dentro la stessa classe basta fare:
this.info=oggettopassato.info;
senza usare un metodo del tipo:
this.info=oggettopassato.getInfo();
giusto?
Grazie ;)
puoi accedere anche ai membri privati di quella classe senza usare un metodo accessorio.
L'approccio pero' è sbagliato, in C++ funziona, in Java no ;)
se ti chiedi perche' pensa a un caso di ereditarietà con il costruttore di copia...
Originariamente inviato da kingv
puoi accedere anche ai membri privati di quella classe senza usare un metodo accessorio.
L'approccio pero' è sbagliato, in C++ funziona, in Java no ;)
se ti chiedi perche' pensa a un caso di ereditarietà con il costruttore di copia...
Quindi un approccio alternativo quale sarebbe?
Costruirmi un metodo che crea un clone?
Originariamente inviato da luxorl
Quindi un approccio alternativo quale sarebbe?
Costruirmi un metodo che crea un clone?
esatto, anzi fare l'overriding del metodo clone() di object e implmentare l'interfaccia Cloneable
Originariamente inviato da kingv
esatto, anzi fare l'overriding del metodo clone() di object e implmentare l'interfaccia Cloneable
E fammi capire un altra cosa,
devo implementare l'interfaccia Cloneable se no farei l'overriding del metodo clone() di Object... giusto?
Mi fai capire bene perchè questo porterebbe problemi?
Originariamente inviato da luxorl
E fammi capire un altra cosa,
devo implementare l'interfaccia Cloneable se no farei l'overriding del metodo clone() di Object... giusto?
Mi fai capire bene perchè questo porterebbe problemi?
no l'overriding lo fai in ogni caso.
implementi l'interfaccia (che e' un'interfaccia vuota) solo per permettere a chi ti deve chiamare di sapere se il tuo oggetto e' clonabile o meno (tramite l'operatore instanceof).
Non e' pulitissimo come design ma evidentemente chi ha progettato questa parte del linguaggio ha voluto mettere in risalto il fatto che generalmente gli oggetti NON sono clonabili e se si vuole permettere la clonabilità occorre dichiararlo esplicitamente.
se non sono stato chiaro chiedi pure.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.