|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
[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 ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5705
|
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... |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
Costruirmi un metodo che crea un clone?
__________________
![]() |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5705
|
Quote:
esatto, anzi fare l'overriding del metodo clone() di object e implmentare l'interfaccia Cloneable |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
devo implementare l'interfaccia Cloneable se no farei l'overriding del metodo clone() di Object... giusto? Mi fai capire bene perchè questo porterebbe problemi?
__________________
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5705
|
Quote:
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. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:07.