1
00:00:02,400 --> 00:00:04,860
Ciao, questo è che non vogliono saperlo.

2
00:00:05,130 --> 00:00:11,460
Ora vorrei dedicare qualche minuto in più per assicurarmi che abbiano davvero una solida comprensione

3
00:00:11,460 --> 00:00:18,540
di come si comportano gli oggetti afarensis quando vengono riassegnati, ma altri riferimenti a oggetti orbitano e

4
00:00:18,540 --> 00:00:19,840
paracadutano nuovi oggetti.

5
00:00:19,920 --> 00:00:24,220
Questo è legato al meccanismo del passaggio per valore che abbiamo discusso in precedenza.

6
00:00:24,230 --> 00:00:29,450
Sappiamo che in Jawa i dati li hanno passati tramite il meccanismo del passaggio per valore.

7
00:00:29,820 --> 00:00:35,580
E abbiamo anche detto che sarebbe stato lo stesso con le istruzioni di assegnazione, ma

8
00:00:35,970 --> 00:00:42,810
con le dichiarazioni di assegnazione potremmo entrare in situazioni in cui lo stesso riferimento all'oggetto viene riassegnato più volte

9
00:00:42,810 --> 00:00:49,430
ma diversi oggetti di Francis e dobbiamo essere chiari su ciò che sta accadendo con quel riferimento all'oggetto .

10
00:00:49,440 --> 00:00:54,150
Quindi penso che sarebbe bello se avessimo passato qualche minuto in più su questo particolare argomento in quanto

11
00:00:54,150 --> 00:00:55,950
è davvero fondamentale su questo punto.

12
00:00:55,950 --> 00:00:58,940
Andare avanti senza una solida comprensione di questo.

13
00:00:59,370 --> 00:01:05,660
Quindi andiamo avanti e usiamo lo stesso esempio di studente esteso per questo particolare Demel.

14
00:01:05,720 --> 00:01:09,160
Quindi ecco lo sbircio della scrivania dello studente che abbiamo visto prima.

15
00:01:09,290 --> 00:01:11,680
Quindi stiamo creando tre oggetti studente.

16
00:01:11,710 --> 00:01:13,930
Quindi uno studente vuole correre in tre.

17
00:01:14,060 --> 00:01:16,270
Non preoccupiamoci dello studente 3 qui.

18
00:01:16,610 --> 00:01:19,750
OK consideriamo solo uno studente che fa uno studente.

19
00:01:19,850 --> 00:01:23,680
E poi prova come ha già creato il codice per questa demo.

20
00:01:23,840 --> 00:01:27,030
Quindi andiamo avanti e guardiamo ognuna delle affermazioni qui.

21
00:01:27,050 --> 00:01:27,760
Uno alla volta.

22
00:01:27,770 --> 00:01:30,470
Ho intenzione di decommentarlo e possiamo testarlo.

23
00:01:30,530 --> 00:01:34,920
Quindi consideriamo solo STUDENT 1 1 nonstored STUDENT 2 STUDENT 1.

24
00:01:34,970 --> 00:01:41,510
John inizialmente fa John e in seguito è stato corretto con John non registrato nella sua casetta ed

25
00:01:41,560 --> 00:01:43,400
è il terzo studente.

26
00:01:43,490 --> 00:01:46,330
E qui abbiamo il quarto studente qui.

27
00:01:46,340 --> 00:01:50,830
Quindi fammi un commento e lasciatemi commentare da qui.

28
00:01:51,170 --> 00:01:59,800
Quindi lo studente per noi sta assegnando Studente 1 OK e Studente 1 fondamentalmente è per N Sync.

29
00:01:59,870 --> 00:02:02,640
Questo particolare oggetto studente chiama John.

30
00:02:02,780 --> 00:02:03,570
Destra.

31
00:02:03,620 --> 00:02:11,210
Quindi STUDENT 1 fondamentalmente non è oggetto studente in sé ma STUDENT 1 ha l'indirizzo di memoria di questo particolare

32
00:02:11,210 --> 00:02:12,570
oggetto studente John.

33
00:02:12,590 --> 00:02:19,610
Giusto sappiamo che e quando svolgiamo questo tipo di incarico, sappiamo che una copia di quell'indirizzo di memoria che

34
00:02:19,940 --> 00:02:26,990
uno studente è in possesso sarà fatta e quella da assegnare a STUDENT 4 che significa che sia STUDENTE

35
00:02:26,990 --> 00:02:31,620
1 che 2 e 4 hanno il stessi indirizzi di memoria.

36
00:02:31,870 --> 00:02:32,210
OK.

37
00:02:32,230 --> 00:02:36,950
E quell'indirizzo di memoria farà riferimento a questo particolare oggetto studente.

38
00:02:36,950 --> 00:02:39,510
E qui stampiamo il nome su STUDENT 4.

39
00:02:39,760 --> 00:02:41,440
E ovviamente deve stampare.

40
00:02:41,570 --> 00:02:42,810
John e lo sappiamo.

41
00:02:42,920 --> 00:02:49,710
Quindi andiamo avanti e compiliamo ed eseguiamo questo e lo combinate per eseguirlo.

42
00:02:50,060 --> 00:02:54,580
E come puoi vedere l'ultima affermazione è il nome di tutti gli STUDENTI 4 ed è un lavoro di stampa.

43
00:02:54,910 --> 00:02:55,250
OK.

44
00:02:55,280 --> 00:02:59,630
Quindi STUDENT 4 su Student 1 è un singolo stesso oggetto.

45
00:02:59,690 --> 00:03:07,810
Diamo un'occhiata al prossimo gruppo di istruzioni e qui stiamo aggiornando invocando il metodo del profilo di aggiornamento del profilo di aggiornamento

46
00:03:07,810 --> 00:03:13,480
usando lo studente per essere aggiornato sul nome di Mike Huckabee o stampando il nome

47
00:03:13,480 --> 00:03:15,730
dello studente quello dello studente.

48
00:03:15,910 --> 00:03:16,200
OK.

49
00:03:16,210 --> 00:03:22,500
Quindi quando lo facciamo sappiamo che sappiamo che deve aprire mike perché cosa e perché non-studente per fare riferimento

50
00:03:22,510 --> 00:03:24,250
a questo stesso oggetto.

51
00:03:24,280 --> 00:03:27,290
È solo anatra quel nome è una parola grossa per cui tutti noi studenti.

52
00:03:27,310 --> 00:03:33,160
Ma se provassimo ad accedere al campo del nome, lo studente vinse allora che sarebbe stato istruito

53
00:03:33,160 --> 00:03:35,180
a darci il nome aggiornato.

54
00:03:35,210 --> 00:03:40,880
Quindi, ancora una volta fammi comprare quella linea fammi correre.

55
00:03:40,900 --> 00:03:46,860
Quindi, ancora una volta, come puoi vedere per lo studente, che cosa ha capito Mike e che sarebbe anche Mike.

56
00:03:47,260 --> 00:03:47,500
OK.

57
00:03:47,500 --> 00:03:48,650
Quindi questa è una cosa.

58
00:03:48,670 --> 00:03:50,790
Quindi scendiamo.

59
00:03:51,220 --> 00:03:57,000
E qui stiamo assegnando uno studente per un gruppo di studenti di 4.

60
00:03:57,530 --> 00:03:58,040
OK.

61
00:03:58,150 --> 00:03:59,980
Quindi, cosa sta succedendo qui.

62
00:03:59,980 --> 00:04:05,160
STUDENT 2 fa riferimento a un altro oggetto in cui il nome è Rotch.

63
00:04:05,160 --> 00:04:05,440
Destra.

64
00:04:05,470 --> 00:04:12,390
Quindi lo studente che ha in mano la memoria indirizza l'oggetto studente di quel riferimento su quell'indirizzo di memoria.

65
00:04:12,400 --> 00:04:18,220
Quando eseguiamo questo tipo di incarichi, ora sappiamo che una copia di tale indirizzo di memoria è fatta

66
00:04:18,310 --> 00:04:19,950
sotto questo segno allo studente.

67
00:04:20,400 --> 00:04:21,130
OK.

68
00:04:21,160 --> 00:04:25,270
Quindi studente da prima aveva l'indirizzo di memoria dello studente.

69
00:04:25,270 --> 00:04:28,600
Uno degli oggetti a cui fa riferimento lo Studente 1.

70
00:04:28,660 --> 00:04:35,380
Quindi questa è una parola scritta su tutto e tu copi tutto ciò che indirizzo di memoria e quell'indirizzo

71
00:04:35,490 --> 00:04:38,600
di memoria punta allo studente sulla stampella dell'oggetto.

72
00:04:38,680 --> 00:04:42,530
OK, quindi dai il nome di Student 4 che era audio o Mike.

73
00:04:42,730 --> 00:04:48,190
Ora sarà Rotch OK.

74
00:04:48,210 --> 00:04:50,380
Come puoi vedere ora è Rotch.

75
00:04:50,390 --> 00:04:53,850
Quindi è così dolce ed è stato riassegnato.

76
00:04:53,940 --> 00:04:58,070
Ora diciamo che stiamo riassegnando lo studente a leggere.

77
00:04:58,080 --> 00:05:06,500
STUDENTE 1 OK, quindi un indirizzo di memoria è una copia dell'indirizzo di memoria che lo studente 1 detiene e verrà

78
00:05:06,500 --> 00:05:08,320
assegnato allo studente 2.

79
00:05:08,550 --> 00:05:08,800
OK.

80
00:05:08,810 --> 00:05:11,380
Quindi funziona anche il meccanismo dei valori per topass.

81
00:05:11,720 --> 00:05:15,590
Quindi studenti che ora faranno riferimento all'oggetto.

82
00:05:15,590 --> 00:05:19,430
Mike scrive ma no.

83
00:05:19,530 --> 00:05:27,020
Un giovane studente lo farà anche perché nel segmento precedente uno studente che è assegnato a STUDENT

84
00:05:27,020 --> 00:05:27,600
4.

85
00:05:27,840 --> 00:05:34,530
Ok, quindi non pensate che solo perché uno studente è uno studente che viene riassegnato qui che avrebbe anche un

86
00:05:34,530 --> 00:05:36,240
impatto per lo studente.

87
00:05:36,360 --> 00:05:37,990
Quindi non succederà.

88
00:05:38,100 --> 00:05:45,200
È solo che in questo caso è il momento in cui lo studente quaranta viene riassegnato per andare a farlo, una

89
00:05:45,200 --> 00:05:51,330
copia del valore dello studente che è assegnata ad uno studente per entrambi ha lo stesso valore

90
00:05:51,330 --> 00:05:52,460
a questo punto.

91
00:05:52,530 --> 00:05:56,610
Ma STUDENT 2 è appena aggiornato con quello studente.

92
00:05:56,630 --> 00:06:03,720
Quindi una copia del valore che uno studente possiede e un indirizzo di memoria che verrà assegnato non farebbe altro

93
00:06:03,720 --> 00:06:10,280
che STUDENT 4 e manterrà ancora il valore che è stato assegnato qui da questa dichiarazione di assegnazione.

94
00:06:10,590 --> 00:06:17,190
OK, STUDENT 4 avrebbe comunque puntato a ciò che c'era studente che stava indicando a questo punto che sarebbe stato Raaj ma

95
00:06:17,190 --> 00:06:21,380
STUDENT 2 quando noi con il nome che abbiamo chiesto non avremmo fatto.

96
00:06:21,390 --> 00:06:25,770
Sarà Mike Howard perché abbiamo aggiornato qui.

97
00:06:25,990 --> 00:06:30,850
Quindi andiamo avanti Arne precompilare.

98
00:06:31,110 --> 00:06:32,610
Esecuzione OK.

99
00:06:32,620 --> 00:06:36,460
Così anche lo studente Forestal che indica il garage su Student 2 è aggiornato.

100
00:06:36,640 --> 00:06:37,630
OK.

101
00:06:37,780 --> 00:06:44,590
Quindi, la cosa principale che sto cercando di dimostrare qui è che solo perché abbiamo riassegnato questo non significa

102
00:06:44,590 --> 00:06:47,240
che anche lo STUDENT 4 verrà aggiornato.

103
00:06:47,320 --> 00:06:52,570
Ho bisogno di Wittstock a che punto questo studente oggetto specifico vuole

104
00:06:52,570 --> 00:07:00,300
l'oggetto in modo che non succederà perché tutto è come funziona come passa per valore viene fatta una copia qui.

105
00:07:00,350 --> 00:07:02,930
OK, questo è un punto.

106
00:07:02,950 --> 00:07:08,740
Quindi STUDENT 4 farà ancora riferimento a Rotch can o non verrà aggiornato.

107
00:07:08,920 --> 00:07:14,900
Quindi qui invece di riassegnare con un riferimento a un oggetto,

108
00:07:14,960 --> 00:07:24,470
assegniamo a un nuovo oggetto studente un oggetto studente nuovo di zecca e questo è compilato su grandis.

109
00:07:24,550 --> 00:07:27,610
Ora sta dando un errore qui o un errore di compilazione.

110
00:07:27,660 --> 00:07:31,120
Dice nessun costruttore adatto per quale studente.

111
00:07:31,170 --> 00:07:35,620
E questo perché qui uno studente ha due costruttori.

112
00:07:35,670 --> 00:07:36,320
OK.

113
00:07:36,570 --> 00:07:39,270
Quindi non c'è costruttore di sfumature qui.

114
00:07:39,270 --> 00:07:44,610
E sappiamo che se c'è un costruttore nella classe il compilatore non inserirà correttamente un costruttore di

115
00:07:44,830 --> 00:07:45,180
buoi.

116
00:07:45,180 --> 00:07:45,970
Lo sappiamo.

117
00:07:45,990 --> 00:07:47,640
Quindi non c'è nessun costruttore X.

118
00:07:47,640 --> 00:07:53,160
Dobbiamo inserire manualmente uno o otterremo l'errore del compilatore.

119
00:07:53,220 --> 00:07:54,730
Quindi non facciamolo.

120
00:07:54,900 --> 00:07:56,730
Invochiamo uno dei costruttori.

121
00:07:56,910 --> 00:08:00,310
Quindi diciamo solo Alex.

122
00:08:00,770 --> 00:08:01,650
OK.

123
00:08:02,190 --> 00:08:08,970
Ed è anche andare avanti e prenatale tutti qui.

124
00:08:09,130 --> 00:08:15,930
Ora un errore del compilatore è scomparso e stiamo leggendo lo studente 4 che non sta inferendo.

125
00:08:15,960 --> 00:08:20,430
Alex studente su studente 1 fa riferimento a Mike.

126
00:08:20,530 --> 00:08:20,830
OK.

127
00:08:20,840 --> 00:08:23,580
Queste sono le ultime due dichiarazioni qui.

128
00:08:23,600 --> 00:08:28,340
Quindi ora la domanda è cosa è successo all'oggetto Rotch a destra.

129
00:08:28,400 --> 00:08:30,760
Perché questo è un riassegnazione qui.

130
00:08:30,970 --> 00:08:34,010
E cosa è successo allo studente Rotch.

131
00:08:34,040 --> 00:08:37,890
Quindi l'oggetto corrispondente a Rotch è ancora lì sul mucchio.

132
00:08:38,210 --> 00:08:44,620
Ma è solo che non ha alcuno scopo ed è perché non ha riferimenti.

133
00:08:44,810 --> 00:08:48,520
Quindi è il nostro amico ora appena considerato come abbandonato.

134
00:08:48,920 --> 00:08:52,210
OK, ma sta ancora occupando spazio nella memoria.

135
00:08:52,410 --> 00:08:58,190
E questo è il meraviglioso raccoglitore di immondizie che entra in gioco e presto recupererà la

136
00:08:58,280 --> 00:09:00,670
memoria che è occupata dall'oggetto Rotch.

137
00:09:00,800 --> 00:09:01,030
OK.

138
00:09:01,050 --> 00:09:03,540
Perché non ha più riferimenti.

139
00:09:03,620 --> 00:09:04,600
Il netturbino.

140
00:09:04,610 --> 00:09:08,150
Bene, recupereremo il ricordo che è occupato da quel particolare oggetto.

141
00:09:08,310 --> 00:09:10,810
E questa è solo la gestione automatica della memoria.

142
00:09:10,940 --> 00:09:17,350
Ok, sotto molte cose semplificate, studieremo la raccolta dei rifiuti e il doodle nel capitolo sui GBM interni.

143
00:09:17,450 --> 00:09:18,540
Quindi questo è tutto.

144
00:09:18,540 --> 00:09:24,890
E spero che non siate molto chiari su come funzionano i riferimenti agli oggetti quando vengono riassegnati con

145
00:09:24,890 --> 00:09:31,340
altri riferimenti agli oggetti, solo gli indirizzi di memoria vengono copiati quando vengono riassegnati, cosa che accade anche

146
00:09:31,340 --> 00:09:34,730
quando le apparenze degli oggetti vengono passati a loro.

147
00:09:34,730 --> 00:09:35,640
Giusto.

148
00:09:35,720 --> 00:09:39,230
Questo è passato per valore se non prima.

149
00:09:39,230 --> 00:09:43,990
Basta implementare questo programma sulla libertà per scommettere su di esso dovrebbe essere chiaro.

150
00:09:44,090 --> 00:09:44,630
Grazie.
