|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2006
Messaggi: 2025
|
[Java] Help clone e lettura variabile privata
Classe
http://pastebin.com/fwNHcw64 Sottoclasse http://pastebin.com/Bcm4Y7qr Perchè nella sottoclasse mi è consentita l' operazione alla riga 68 nonostante clone.transactionCount sia privata? Come dovrei finire il metodo clone della sottoclasse in modo corretto nel caso cosi non vada bene? Funzionerà se so una sottoclasse della sottoclasse? Grazie mille ![]()
__________________
Trattative concluse |
![]() |
![]() |
![]() |
#2 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Quote:
Tra l'altro io farei ritornare un CheckingAccount invece di un Object (e un BankAccount nella superclasse). Non ho capito cosa intendi. |
||
![]() |
![]() |
![]() |
#3 | ||
Senior Member
Iscritto dal: Jun 2006
Messaggi: 2025
|
Quote:
EDIT: Il primo punto l'ho capito, ho fatto tanti ma tanti esercizi e non avevo mai capito sta cosa ![]() Quote:
Se estendo CheckingAccount, posso clonare la nuova classe richiamando anche il metodo clone di CheckingAccount o, fatto cosi mi ritornerebbe un oggetto di tipo CheckingAccount e quindi non clonabile ad un livello inferiore?
__________________
Trattative concluse Ultima modifica di Fra-90 : 03-01-2011 alle 15:34. |
||
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Quote:
Sono solo 3 pagine, quindi ti rimando lì. Penso dipenda da come è implementato a monte il metodo clone, se è come dicevo nel mio precendente post dovrebbe occuparsene il metodo clone di Object che quindi ricopierà anche gli eventuali nuovi campi. Tieni conto però che finché gli attributi sono solo tipi primitivi non ci sono problemi, quando invece hai attributi che sono riferimenti a oggetti devi fare attenzione perché clone (quello definito in Object) copia solo i riferimenti, gli oggetti referenziati quindi restano in comune tra l'oggetto originale e il suo clone (a volte può andare bene così ma a volte no). |
||
![]() |
![]() |
![]() |
#5 | ||
Senior Member
Iscritto dal: Jun 2006
Messaggi: 2025
|
Quote:
Quote:
![]() PS: Grazie mille per l' aiuto
__________________
Trattative concluse |
||
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
CheckingAccount -> BankAccount -> Object In CheckingAccount.clone invochi super.clone() (quindi il metodo clone definito in BankAccount) mentre in BankAccount.clone invocando super.clone() invochi il metodo definito in Object. Quindi CheckingAccount indirettamente invoca Object.clone. Finché non spezzi questa catena di chiamate sei certo che Object.clone verrà sempre invocato. Prego |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2006
Messaggi: 2025
|
Tutto perfetto.
Grazie ancora ![]()
__________________
Trattative concluse |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:49.