Ciao, questo è che non vogliono saperlo.
Ora vorrei dedicare qualche minuto in più per assicurarmi che abbiano davvero una solida comprensione
di come si comportano gli oggetti afarensis quando vengono riassegnati, ma altri riferimenti a oggetti orbitano e
paracadutano nuovi oggetti.
Questo è legato al meccanismo del passaggio per valore che abbiamo discusso in precedenza.
Sappiamo che in Jawa i dati li hanno passati tramite il meccanismo del passaggio per valore.
E abbiamo anche detto che sarebbe stato lo stesso con le istruzioni di assegnazione, ma
con le dichiarazioni di assegnazione potremmo entrare in situazioni in cui lo stesso riferimento all'oggetto viene riassegnato più volte
ma diversi oggetti di Francis e dobbiamo essere chiari su ciò che sta accadendo con quel riferimento all'oggetto .
Quindi penso che sarebbe bello se avessimo passato qualche minuto in più su questo particolare argomento in quanto
è davvero fondamentale su questo punto.
Andare avanti senza una solida comprensione di questo.
Quindi andiamo avanti e usiamo lo stesso esempio di studente esteso per questo particolare Demel.
Quindi ecco lo sbircio della scrivania dello studente che abbiamo visto prima.
Quindi stiamo creando tre oggetti studente.
Quindi uno studente vuole correre in tre.
Non preoccupiamoci dello studente 3 qui.
OK consideriamo solo uno studente che fa uno studente.
E poi prova come ha già creato il codice per questa demo.
Quindi andiamo avanti e guardiamo ognuna delle affermazioni qui.
Uno alla volta.
Ho intenzione di decommentarlo e possiamo testarlo.
Quindi consideriamo solo STUDENT 1 1 nonstored STUDENT 2 STUDENT 1.
John inizialmente fa John e in seguito è stato corretto con John non registrato nella sua casetta ed
è il terzo studente.
E qui abbiamo il quarto studente qui.
Quindi fammi un commento e lasciatemi commentare da qui.
Quindi lo studente per noi sta assegnando Studente 1 OK e Studente 1 fondamentalmente è per N Sync.
Questo particolare oggetto studente chiama John.
Destra.
Quindi STUDENT 1 fondamentalmente non è oggetto studente in sé ma STUDENT 1 ha l'indirizzo di memoria di questo particolare
oggetto studente John.
Giusto sappiamo che e quando svolgiamo questo tipo di incarico, sappiamo che una copia di quell'indirizzo di memoria che
uno studente è in possesso sarà fatta e quella da assegnare a STUDENT 4 che significa che sia STUDENTE
1 che 2 e 4 hanno il stessi indirizzi di memoria.
OK.
E quell'indirizzo di memoria farà riferimento a questo particolare oggetto studente.
E qui stampiamo il nome su STUDENT 4.
E ovviamente deve stampare.
John e lo sappiamo.
Quindi andiamo avanti e compiliamo ed eseguiamo questo e lo combinate per eseguirlo.
E come puoi vedere l'ultima affermazione è il nome di tutti gli STUDENTI 4 ed è un lavoro di stampa.
OK.
Quindi STUDENT 4 su Student 1 è un singolo stesso oggetto.
Diamo un'occhiata al prossimo gruppo di istruzioni e qui stiamo aggiornando invocando il metodo del profilo di aggiornamento del profilo di aggiornamento
usando lo studente per essere aggiornato sul nome di Mike Huckabee o stampando il nome
dello studente quello dello studente.
OK.
Quindi quando lo facciamo sappiamo che sappiamo che deve aprire mike perché cosa e perché non-studente per fare riferimento
a questo stesso oggetto.
È solo anatra quel nome è una parola grossa per cui tutti noi studenti.
Ma se provassimo ad accedere al campo del nome, lo studente vinse allora che sarebbe stato istruito
a darci il nome aggiornato.
Quindi, ancora una volta fammi comprare quella linea fammi correre.
Quindi, ancora una volta, come puoi vedere per lo studente, che cosa ha capito Mike e che sarebbe anche Mike.
OK.
Quindi questa è una cosa.
Quindi scendiamo.
E qui stiamo assegnando uno studente per un gruppo di studenti di 4.
OK.
Quindi, cosa sta succedendo qui.
STUDENT 2 fa riferimento a un altro oggetto in cui il nome è Rotch.
Destra.
Quindi lo studente che ha in mano la memoria indirizza l'oggetto studente di quel riferimento su quell'indirizzo di memoria.
Quando eseguiamo questo tipo di incarichi, ora sappiamo che una copia di tale indirizzo di memoria è fatta
sotto questo segno allo studente.
OK.
Quindi studente da prima aveva l'indirizzo di memoria dello studente.
Uno degli oggetti a cui fa riferimento lo Studente 1.
Quindi questa è una parola scritta su tutto e tu copi tutto ciò che indirizzo di memoria e quell'indirizzo
di memoria punta allo studente sulla stampella dell'oggetto.
OK, quindi dai il nome di Student 4 che era audio o Mike.
Ora sarà Rotch OK.
Come puoi vedere ora è Rotch.
Quindi è così dolce ed è stato riassegnato.
Ora diciamo che stiamo riassegnando lo studente a leggere.
STUDENTE 1 OK, quindi un indirizzo di memoria è una copia dell'indirizzo di memoria che lo studente 1 detiene e verrà
assegnato allo studente 2.
OK.
Quindi funziona anche il meccanismo dei valori per topass.
Quindi studenti che ora faranno riferimento all'oggetto.
Mike scrive ma no.
Un giovane studente lo farà anche perché nel segmento precedente uno studente che è assegnato a STUDENT
4.
Ok, quindi non pensate che solo perché uno studente è uno studente che viene riassegnato qui che avrebbe anche un
impatto per lo studente.
Quindi non succederà.
È solo che in questo caso è il momento in cui lo studente quaranta viene riassegnato per andare a farlo, una
copia del valore dello studente che è assegnata ad uno studente per entrambi ha lo stesso valore
a questo punto.
Ma STUDENT 2 è appena aggiornato con quello studente.
Quindi una copia del valore che uno studente possiede e un indirizzo di memoria che verrà assegnato non farebbe altro
che STUDENT 4 e manterrà ancora il valore che è stato assegnato qui da questa dichiarazione di assegnazione.
OK, STUDENT 4 avrebbe comunque puntato a ciò che c'era studente che stava indicando a questo punto che sarebbe stato Raaj ma
STUDENT 2 quando noi con il nome che abbiamo chiesto non avremmo fatto.
Sarà Mike Howard perché abbiamo aggiornato qui.
Quindi andiamo avanti Arne precompilare.
Esecuzione OK.
Così anche lo studente Forestal che indica il garage su Student 2 è aggiornato.
OK.
Quindi, la cosa principale che sto cercando di dimostrare qui è che solo perché abbiamo riassegnato questo non significa
che anche lo STUDENT 4 verrà aggiornato.
Ho bisogno di Wittstock a che punto questo studente oggetto specifico vuole
l'oggetto in modo che non succederà perché tutto è come funziona come passa per valore viene fatta una copia qui.
OK, questo è un punto.
Quindi STUDENT 4 farà ancora riferimento a Rotch can o non verrà aggiornato.
Quindi qui invece di riassegnare con un riferimento a un oggetto,
assegniamo a un nuovo oggetto studente un oggetto studente nuovo di zecca e questo è compilato su grandis.
Ora sta dando un errore qui o un errore di compilazione.
Dice nessun costruttore adatto per quale studente.
E questo perché qui uno studente ha due costruttori.
OK.
Quindi non c'è costruttore di sfumature qui.
E sappiamo che se c'è un costruttore nella classe il compilatore non inserirà correttamente un costruttore di
buoi.
Lo sappiamo.
Quindi non c'è nessun costruttore X.
Dobbiamo inserire manualmente uno o otterremo l'errore del compilatore.
Quindi non facciamolo.
Invochiamo uno dei costruttori.
Quindi diciamo solo Alex.
OK.
Ed è anche andare avanti e prenatale tutti qui.
Ora un errore del compilatore è scomparso e stiamo leggendo lo studente 4 che non sta inferendo.
Alex studente su studente 1 fa riferimento a Mike.
OK.
Queste sono le ultime due dichiarazioni qui.
Quindi ora la domanda è cosa è successo all'oggetto Rotch a destra.
Perché questo è un riassegnazione qui.
E cosa è successo allo studente Rotch.
Quindi l'oggetto corrispondente a Rotch è ancora lì sul mucchio.
Ma è solo che non ha alcuno scopo ed è perché non ha riferimenti.
Quindi è il nostro amico ora appena considerato come abbandonato.
OK, ma sta ancora occupando spazio nella memoria.
E questo è il meraviglioso raccoglitore di immondizie che entra in gioco e presto recupererà la
memoria che è occupata dall'oggetto Rotch.
OK.
Perché non ha più riferimenti.
Il netturbino.
Bene, recupereremo il ricordo che è occupato da quel particolare oggetto.
E questa è solo la gestione automatica della memoria.
Ok, sotto molte cose semplificate, studieremo la raccolta dei rifiuti e il doodle nel capitolo sui GBM interni.
Quindi questo è tutto.
E spero che non siate molto chiari su come funzionano i riferimenti agli oggetti quando vengono riassegnati con
altri riferimenti agli oggetti, solo gli indirizzi di memoria vengono copiati quando vengono riassegnati, cosa che accade anche
quando le apparenze degli oggetti vengono passati a loro.
Giusto.
Questo è passato per valore se non prima.
Basta implementare questo programma sulla libertà per scommettere su di esso dovrebbe essere chiaro.
Grazie.