1
00:00:01,170 --> 00:00:04,670
Prima di proseguire non discutiamo e discutiamo brevemente.

2
00:00:04,740 --> 00:00:07,830
E un argomento molto importante chiamato binding del metodo.

3
00:00:07,830 --> 00:00:11,460
È legato al modo in cui i metodi vengono eseguiti.

4
00:00:11,470 --> 00:00:17,660
Ho scoperto che anche molti ingegneri di alto livello non hanno una buona conoscenza di questo

5
00:00:17,680 --> 00:00:24,210
argomento, ma arriveremo alla fine di questo attraverso un Demel molto approfondito quando discuteremo del polimorfismo indirettamente

6
00:00:24,270 --> 00:00:28,920
discusso su parte del legame metallico senza fare alcun riferimento esplicito.

7
00:00:29,070 --> 00:00:35,550
Ad esempio visita che il look del compilatore ha il tipo di riferimento per sapere se B può invocare o meno

8
00:00:35,550 --> 00:00:38,600
un particolare metodo su un riferimento a un oggetto.

9
00:00:38,680 --> 00:00:44,820
E hai anche detto che la JVM esamina il tipo di oggetto per sapere quale metodo eseguirlo.

10
00:00:45,060 --> 00:00:50,970
Quindi questo è tutto il metodo di collegamento è stato divulgato nel contesto dei metodi di istanza.

11
00:00:50,970 --> 00:00:56,300
Ma abbiamo anche metodi statici, quindi ci sono alcuni dettagli in più che dobbiamo sapere riguardo al

12
00:00:56,340 --> 00:00:57,340
binding dei metodi.

13
00:00:57,430 --> 00:00:58,330
Vediamoli.

14
00:00:58,340 --> 00:01:03,480
Tutti i metodi vincolanti sono associati a tutti i metodi.

15
00:01:04,030 --> 00:01:10,030
Quindi ogni volta che vedi una chiamata al metodo che è il metodo di binding su come suggerisce il nome,

16
00:01:10,180 --> 00:01:16,530
si tratta di un meccanismo di associazione di una chiamata di metodo a una dichiarazione e all'implementazione del metodo che viene chiamato.

17
00:01:16,870 --> 00:01:22,420
Ma quella dichiarazione sarebbe l'implementazione del metodo di firma del metodo è il corpo del metodo che viene eseguito

18
00:01:22,480 --> 00:01:23,840
in fase di runtime.

19
00:01:24,730 --> 00:01:27,580
Il summit che chiama è associato a queste due cose.

20
00:01:27,610 --> 00:01:34,240
Uno è la firma del metodo sull'implementazione del metodo su questi sono due passaggi distinti del binding del

21
00:01:34,570 --> 00:01:40,930
metodo su ogni paese pieno di essi come binding della firma del metodo sull'associazione dell'attuazione del metodo.

22
00:01:40,980 --> 00:01:46,320
Diamo un'occhiata a entrambi iniziando con il binding della firma del motard.

23
00:01:46,530 --> 00:01:52,740
Una volta che il compilatore incontra un metodo nell'istruzione Ruction controlla il tipo di riferimento

24
00:01:52,740 --> 00:01:58,830
fuori dall'oggetto reference su questo il metodo è stato invocato include un metodo comparabile

25
00:01:58,920 --> 00:02:01,620
che includerebbe parametri uguali o confrontabili.

26
00:02:02,380 --> 00:02:07,690
E se trova uno denigra le informazioni sulla firma del metodo nel bytecode.

27
00:02:08,300 --> 00:02:13,940
Altrimenti sappiamo che genera un errore del compilatore su questo intero processo, che può essere chiamato binding della

28
00:02:13,940 --> 00:02:14,970
firma del metodo.

29
00:02:15,950 --> 00:02:24,020
E questo è sempre fatto dal compilatore, non importa se il metodo è statico o istanza successiva quando si tratta di eseguire

30
00:02:24,020 --> 00:02:26,960
il metodo vich in fase di esecuzione.

31
00:02:26,960 --> 00:02:33,930
Tale decisione può essere presa dal compilatore o dal budget in tempo, a seconda del tipo di metodo nel contesto se il metodo

32
00:02:34,890 --> 00:02:39,450
è lo stock, quindi la decisione viene presa al momento della compilazione stesso e si

33
00:02:39,510 --> 00:02:43,090
basa ancora sul tipo di riferimento Nahor come metodo di istanza.

34
00:02:43,190 --> 00:02:47,700
Quindi la decisione viene presa in fase di esecuzione dalla JVM e si basa sull'oggetto.

35
00:02:47,940 --> 00:02:54,680
Ricordo come JVM sceglie la domanda più specifica del metodo nella struttura di ereditarietà a partire dall'oggetto su

36
00:02:54,680 --> 00:02:57,040
cui il metodo è invocato.

37
00:02:58,670 --> 00:03:04,880
Quindi i metodi fondamentalmente vincolanti o statici sono completati al momento della compilazione stesso, che si basa

38
00:03:04,880 --> 00:03:11,720
sul tipo di riferimento e ha perfettamente senso perché i metodi di arresto sono metodi di classe e non

39
00:03:11,830 --> 00:03:15,540
mostrano come oggetti GRUBERT creati solo in fase di esecuzione.

40
00:03:15,710 --> 00:03:22,340
Quindi, quale metodo da eseguire in fase di esecuzione viene deciso al momento della compilazione. Arison su un tale tipo di binding

41
00:03:22,340 --> 00:03:25,970
viene indicato come associazione al tempo di compilazione o associazione anticipata.

42
00:03:27,420 --> 00:03:33,420
Questo legame di istanza è importante attendere fino al runtime in quanto dipende dall'oggetto.

43
00:03:34,050 --> 00:03:37,100
Questo si basa solo sull'oggetto e contraddice il runtime.

44
00:03:37,380 --> 00:03:43,050
Vorremmo sapere quale metodo deve essere eseguito un tale tipo di binding è indicato

45
00:03:43,230 --> 00:03:51,200
come runtime binding o late binding, ma tieni presente che anche per esempio i metodi dead firme sono ancora Bontoc compile

46
00:03:51,240 --> 00:03:58,020
time è un leg leg binding è quello che abbiamo visto prima stiamo imparando il polimorfismo e Metallo

47
00:03:58,030 --> 00:04:04,130
su cui stiamo scrivendo qui è una cosa interessante mentre i metodi di istanza sono legati.

48
00:04:04,150 --> 00:04:09,730
Le variabili di istanza sono legate in anticipo che si utilizza una banda diversa per associare variabili di istanza

49
00:04:10,950 --> 00:04:14,460
a variabili statiche e quindi anche esse sono bonderate in anticipo.

50
00:04:14,710 --> 00:04:21,980
Quindi in Java l'associazione anticipata si applica a entrambi i metodi statici e libera la discussione sui militanti o su quale scrittura

51
00:04:21,980 --> 00:04:25,080
di sartorie di variabili d'istanza dovrebbe chiarire il perché.

52
00:04:25,110 --> 00:04:31,760
Le variabili di istanza sono all'inizio di Bonnat e non è quello di chiuderle e questo ci darà una chiara comprensione del

53
00:04:31,820 --> 00:04:33,140
legame con i motard.

54
00:04:33,500 --> 00:04:38,450
E vedremo il bytecode per vedere come funziona l'intero processo di binding dei metodi.

55
00:04:38,450 --> 00:04:47,040
Quindi vedremo un po 'di meno in questa demo se guardiamo solo al metodo binding per i metodi statici

56
00:04:47,040 --> 00:04:51,620
seguiti dal metodo binding per i metodi di istanza.

57
00:04:51,630 --> 00:04:55,070
Dopo di ciò vedranno un esempio interessante.

58
00:04:55,270 --> 00:05:02,850
Questa volta sto provando la demo nel mio editor di notepad perché volevo il pool di runit dalla riga di comando in

59
00:05:02,850 --> 00:05:05,120
aiuto di pull dice in analisi.

60
00:05:05,730 --> 00:05:07,750
Quindi sarà una demo interessante.

61
00:05:08,120 --> 00:05:11,730
E cominciamo con il grosso attacco di motard di serie.

62
00:05:11,760 --> 00:05:14,060
Quindi queste sono le lezioni del nostro caso studio.

63
00:05:14,100 --> 00:05:18,280
Quindi li stiamo solo estendendo e colpendo il suo utente su Djala.

64
00:05:18,430 --> 00:05:21,600
Ho aggiunto questo metodo statico chiama tattica.

65
00:05:21,690 --> 00:05:28,010
È chiamato come metodo tattico e ha un corpo vuoto e Witan è il miglior Djala utente.

66
00:05:28,230 --> 00:05:34,800
Quindi stiamo creando un oggetto stop e il tipo di riferimento è utente in roba di tipo oggetto e stiamo invocando

67
00:05:34,800 --> 00:05:37,700
questo metodo un nuovo metodo chiamato materia statica.

68
00:05:38,070 --> 00:05:45,140
Andiamo avanti e compiliamo e quindi è soddisfacente.

69
00:05:45,140 --> 00:05:49,380
Ora vogliamo assemblare. Vogliamo guardare il bytecode.

70
00:05:49,550 --> 00:05:51,440
E per questo abbiamo bisogno di un Java.

71
00:05:51,520 --> 00:05:53,250
Abbiamo bisogno di un disassemblatore.

72
00:05:53,300 --> 00:05:56,900
Quindi viene fornito con un disassemblatore chiamato jalopy.

73
00:05:56,900 --> 00:05:57,910
È uno strumento.

74
00:05:58,280 --> 00:06:02,540
Puoi trovarlo nella directory di installazione nella cartella bin.

75
00:06:02,540 --> 00:06:08,300
Quindi eccomi qui e la mia directory di installazione in geoduck 1. 8 e nella cartella bin ho

76
00:06:08,330 --> 00:06:16,970
questo strumento chiamato jalopies e può essere usato per disassemblare i classificatori l'input per lo strumento sarebbe un file di classe e

77
00:06:16,970 --> 00:06:21,260
ti mostrerà il byte court che include le istruzioni per JVM.

78
00:06:21,260 --> 00:06:22,880
Quindi facciamolo.

79
00:06:23,000 --> 00:06:25,200
È gelap b il meno.

80
00:06:25,400 --> 00:06:29,960
È un'opzione che significa che è quello che vuoi mostrare tutto.

81
00:06:29,970 --> 00:06:37,970
Un sacco di dettagli riguardanti la bicicletta o e dal momento che il metodo in posizione è fatto nel test utente.

82
00:06:38,210 --> 00:06:42,260
Diciamo solo test utente di classe Daut.

83
00:06:42,260 --> 00:06:52,940
Quindi deve essere di classe Goch e mostra il core di byte del corpo di ogni metodo di classe utente Biton.

84
00:06:53,180 --> 00:07:00,740
E cosa interessante per noi qui, in quanto questa istruzione si chiama static in-work.

85
00:07:01,010 --> 00:07:03,780
E ha anche questo numero qui.

86
00:07:03,980 --> 00:07:11,870
È un numero indice e questo è solo un commento che dice solo ciò che questa particolare istruzione sta

87
00:07:11,870 --> 00:07:12,550
facendo.

88
00:07:12,890 --> 00:07:21,320
OK, quindi qui dice che sai che c'è questa nuova metrica chiamata questione tattica ed è all'interno della

89
00:07:21,320 --> 00:07:22,340
classe utente.

90
00:07:22,440 --> 00:07:29,780
E quindi stiamo invocando questo metodo statico e questa informazione questa parentesi vuota indica che il metodo

91
00:07:30,440 --> 00:07:33,960
non prende alcun parametro e la V.

92
00:07:34,090 --> 00:07:37,600
Questo è il tipo di ritorno del metodo e questo lo rende nullo.

93
00:07:37,640 --> 00:07:44,990
Quindi tutte le informazioni sono qui rappresentate in questo indice ed è un indice in una tabella.

94
00:07:44,990 --> 00:07:49,810
Qui in alto chiamiamo quel pool costante, ma non preoccupiamoci adesso perché ne

95
00:07:50,030 --> 00:07:52,760
discuteremo nel GBM nel prossimo capitolo.

96
00:07:52,880 --> 00:08:01,190
Ma qualunque cosa sia rappresentata lì a indicizzato, allora all'interno di quella tabella, l'output di quello è ciò che vedrai

97
00:08:01,190 --> 00:08:02,010
qui.

98
00:08:02,250 --> 00:08:08,280
OK, ma andiamo verso l'alto e vediamo come appare l'indice.

99
00:08:08,630 --> 00:08:11,370
Quindi questo è chiamato come una costante.

100
00:08:11,930 --> 00:08:12,880
Ecco qui.

101
00:08:13,160 --> 00:08:19,630
Quindi nel prossimo è qui e sta offrendo ancora una volta gruppo ad altri numeri indice ventinove e

102
00:08:19,630 --> 00:08:20,340
trentanove.

103
00:08:20,340 --> 00:08:24,050
Quindi a ventinove qui come qui.

104
00:08:24,400 --> 00:08:34,720
Ed è semplicemente il nome della classe e 39 è qui e include il nome del metodo e le informazioni sui parametri sul

105
00:08:34,730 --> 00:08:36,370
tipo di ritorno.

106
00:08:36,380 --> 00:08:40,880
Quindi questa informazione le informazioni sui parametri e il tipo di ritorno è chiamato come una forma descrittiva

107
00:08:41,500 --> 00:08:42,240
della materia.

108
00:08:42,260 --> 00:08:43,190
È così

109
00:08:46,710 --> 00:08:50,340
che il chiamante così tutta questa cosa è chiamata la specifica Metro.

110
00:08:50,490 --> 00:08:56,720
User Dortch tattica mentoring e questa analisi seguita dal tipo di ritorno.

111
00:08:56,820 --> 00:09:01,140
Quindi si chiama specifica del metodo in modo da avere il nome della classe che

112
00:09:01,140 --> 00:09:07,590
si ha il nome del motard e si ha il descrittore dell'argomento che è fondamentalmente l'informazione del parametro insieme al tipo di ritorno.

113
00:09:07,590 --> 00:09:11,310
Quindi, come puoi vedere, il binding della firma del metodo è già stato fatto.

114
00:09:11,720 --> 00:09:19,200
Ora Van GBM lo incontra quando eseguiamo questo programma su GBM e sui canneti questa istruzione in estatica.

115
00:09:19,500 --> 00:09:28,890
Quindi esaminerà l'indice numero 10 e siccome è semplicemente estatico, sa che lo stocktake motard deve essere all'interno di questa

116
00:09:29,190 --> 00:09:37,050
classe utente che è un tipo di riferimento e guarda in quella classe e trova ciò che

117
00:09:37,050 --> 00:09:37,690
conta.

118
00:09:37,860 --> 00:09:39,560
E poi lo esegue.

119
00:09:39,600 --> 00:09:41,220
Quindi è un legame precoce.

120
00:09:41,220 --> 00:09:49,170
Quindi, nel lavoro statico come Stellung il GBM che è questo è dove la classe è attiva e otterrai.

121
00:09:49,440 --> 00:09:51,980
Ok, adesso è in Rockstar.

122
00:09:52,040 --> 00:09:54,310
Quindi lascia che tu entri nel lavoro che lo farà.

123
00:09:54,450 --> 00:10:01,050
Quindi, se torniamo nella nostra classe, qui siamo in piedi, poster di te, la materia pubblicata sul tuo metodo è

124
00:10:01,060 --> 00:10:05,180
un ordine di materia che abbiamo già nella classe dello staff.

125
00:10:05,220 --> 00:10:05,840
Tutto ok.

126
00:10:05,850 --> 00:10:10,640
È una vecchia scrittura, quindi sostituisce la pubblicazione della classe dell'utente finale.

127
00:10:10,710 --> 00:10:15,040
Quindi questa è una revisione del metodo di istanza è un metodo di istanza come puoi vedere qui.

128
00:10:15,060 --> 00:10:20,520
Ora torniamo al nostro prompt dei comandi e qui alla riga 16.

129
00:10:20,520 --> 00:10:26,530
Dice in-work cosa sei così in-lavoro Whelchel significa che stai per invocare un metodo di istanza.

130
00:10:26,700 --> 00:10:27,990
Quindi cosa vuol dire virtuale.

131
00:10:27,990 --> 00:10:32,390
Significa che il metodo da invocare verrà deciso in fase di runtime.

132
00:10:32,390 --> 00:10:32,790
Destra.

133
00:10:32,830 --> 00:10:39,300
Come vengono richiamati i metodi di istanza ma il binding della firma del metodo è già stato eseguito dal compilatore.

134
00:10:39,810 --> 00:10:41,220
Quindi ho finito qui.

135
00:10:41,220 --> 00:10:46,890
Le istruzioni dicono che se entrate in questo numero dell'indice, beh, ha tutte le informazioni e le

136
00:10:46,890 --> 00:10:49,650
informazioni sono rappresentate in questo commento qui.

137
00:10:49,860 --> 00:10:55,170
Come puoi vedere dice che guarda al tipo di riferimento il tipo di riferimento è l'utente non scritto

138
00:10:55,170 --> 00:11:01,250
che abbiamo questo poster di te e il parametro è una stringa perché sta prendendo una vera stringa di testo

139
00:11:01,680 --> 00:11:04,460
sotto di esso e digita come l'oggetto stesso.

140
00:11:04,680 --> 00:11:09,750
Sappiamo che questo è il binding della firma della metrica ma in fase di esecuzione.

141
00:11:09,840 --> 00:11:12,580
GBM e contatore è questa istruzione.

142
00:11:12,810 --> 00:11:19,740
Osserva il tipo di oggetto e ne conosce già la firma perché è morto nel

143
00:11:19,740 --> 00:11:20,790
byte court.

144
00:11:20,970 --> 00:11:26,940
E quindi cerca nell'oggetto la classe corrispondente al tipo di oggetto che tenta di trovare quel

145
00:11:27,630 --> 00:11:28,600
particolare metodo.

146
00:11:28,620 --> 00:11:32,610
Se lo è se lo trova nella stessa classe, lo esegue semplicemente.

147
00:11:32,880 --> 00:11:38,850
Altrimenti inizia a risalire l'albero ereditario finché trova un metodo e quindi cerca di

148
00:11:38,850 --> 00:11:42,090
trovare un metodo più specifico che conosciamo.

149
00:11:42,120 --> 00:11:44,630
Significa che conosciamo l'intero processo come funziona.

150
00:11:44,670 --> 00:11:47,720
Ecco come lavoreremo.

151
00:11:48,800 --> 00:11:51,780
Questa è la motivazione del motard che abbiamo appena discusso.

152
00:11:52,130 --> 00:11:59,420
Quindi, in pratica, in Rockstar pick è presto l'associazione ci invochiamo virtuali dal momento dell'esecuzione effettiva, ma la

153
00:11:59,510 --> 00:12:02,810
decisione su quale metodo eseguire avviene in tempo.

154
00:12:02,850 --> 00:12:03,870
Legatura tardiva

155
00:12:04,160 --> 00:12:04,800
OK.

156
00:12:05,150 --> 00:12:08,240
Diamo un'occhiata ad un esempio di caso limite.

157
00:12:08,330 --> 00:12:10,220
È un esempio interessante.

158
00:12:10,550 --> 00:12:11,290
Mostralo.

159
00:12:11,600 --> 00:12:16,790
Quindi qui ho questo metodo in uso o dot Java.

160
00:12:16,790 --> 00:12:20,210
È un metodo di istanza chiamato così come metodo di istanza.

161
00:12:20,210 --> 00:12:26,690
Prende un doppio parametro doppio come parametro e semplicemente apre il nome della classe e il nome

162
00:12:26,690 --> 00:12:28,720
di loro al loro staff.

163
00:12:28,750 --> 00:12:36,490
Ho un metodo di istanza del metodo simile qui e ci vuole, invece di raddoppiarne l'assunzione.

164
00:12:36,620 --> 00:12:39,790
E un secondo stampa il nome della classe sul nome del metodo.

165
00:12:39,890 --> 00:12:46,520
Ma non è un metodo prevalente perché la ragione è che il parametro qui è Ingrid come nella superclasse

166
00:12:46,560 --> 00:12:47,490
era doppio.

167
00:12:47,540 --> 00:12:49,550
Quindi deve essere visto.

168
00:12:49,730 --> 00:12:52,970
Posso interpretare un tipo di parametro deve essere lo stesso in ordine.

169
00:12:53,050 --> 00:12:57,880
È più delle regole per sovrascrivere Quindi non è un test utente nomine che si sovrappone.

170
00:12:58,310 --> 00:13:00,700
Lasciatemi solo commentare questo.

171
00:13:02,250 --> 00:13:04,750
Il Midwest qui è nella dichiarazione di posizione.

172
00:13:04,850 --> 00:13:10,750
Quindi eccoci nel metodo dell'istanza di lavoro e stiamo passando la lettera e quale no.

173
00:13:10,760 --> 00:13:12,980
E così lo stiamo passando.

174
00:13:12,980 --> 00:13:16,250
Quindi, cosa pensi che metodo sarebbe invocato.

175
00:13:16,250 --> 00:13:21,880
Naturalmente penseremmo che dal momento che è un metodo di istanza invocherebbe questo particolare metodo

176
00:13:21,950 --> 00:13:28,430
nella classe dello staff perché è la versione più specifica e ha come parametro anche un argomento

177
00:13:28,430 --> 00:13:29,480
passato qui.

178
00:13:29,520 --> 00:13:36,440
E comunque questo non succederà e vedremo anche perché la ragione di ciò.

179
00:13:36,440 --> 00:13:38,540
Quindi fammi solo compilare questo.

180
00:13:38,900 --> 00:13:48,450
Lascia che esegua il test utente come puoi vedere, non sta stampando il metodo di istanza nella classe utente, non in una

181
00:13:48,560 --> 00:13:49,940
classe e roba.

182
00:13:49,940 --> 00:13:52,740
Quindi questa è un'informazione sorprendente.

183
00:13:52,740 --> 00:14:01,080
E il motivo è che lasciatemi fare una jalopy sulla classe di test dell'utente.

184
00:14:01,110 --> 00:14:07,380
Ecco il metodo principale e tutto il codice byte all'interno del metodo principale e qui è la parte interessante.

185
00:14:07,390 --> 00:14:14,480
Quindi dice di invocare quello che vuoi perché è un metodo di istanza, ma qui dice che il metodo

186
00:14:14,540 --> 00:14:21,910
di istanza è in user class, che è OK ma la cosa principale è che dice che il parametro è doppio.

187
00:14:21,990 --> 00:14:26,520
Non ha detto che è un tipo di sottoscrizione ovviamente è nullo.

188
00:14:26,550 --> 00:14:33,170
E la ragione di ciò è il compilatore quando incontra questa dichiarazione di invocazione.

189
00:14:33,390 --> 00:14:40,650
Quindi esaminerà la classe User e vedrà se può trovare un metodo comodo se riesce a

190
00:14:40,650 --> 00:14:42,650
trovare un metodo compatibile.

191
00:14:42,780 --> 00:14:45,080
Quindi li guarda e glielo dice.

192
00:14:45,090 --> 00:14:47,750
E usa il classico trova questo nome di metodo.

193
00:14:48,150 --> 00:14:52,630
E poi lo guarda se c'è un parametro compatibile.

194
00:14:52,710 --> 00:14:57,660
Quindi qui il parametro è e quindi l'istruzione location, ma qui il parametro è doppio.

195
00:14:57,690 --> 00:15:04,580
Quindi è come se un doppio fosse comodo perché a causa dell'implicito può essere implicitamente lanciato per raddoppiare.

196
00:15:04,590 --> 00:15:07,290
Quindi è completo. È un tipo compatibile.

197
00:15:07,320 --> 00:15:14,790
Quindi nel bytecode che scrive la firma della metrica come metodo di istanza e utilizza il parametro

198
00:15:14,790 --> 00:15:16,280
deve essere doppio.

199
00:15:16,440 --> 00:15:23,050
Quindi in fase di esecuzione sai quando JVM è finito e guarda le istruzioni che vede.

200
00:15:23,070 --> 00:15:23,750
OK.

201
00:15:24,090 --> 00:15:27,540
Ecco un metodo di istanza che esamina il tipo di oggetto.

202
00:15:27,690 --> 00:15:33,450
Quindi inizia da stop e quindi Stafford non trova questo metodo giusto perché esiste un metodo di

203
00:15:33,450 --> 00:15:36,100
istanza, ma nel bloccarci ha il parametro.

204
00:15:36,110 --> 00:15:41,130
E così scala l'albero ereditario su di esso che entra in un utente e lì lo vede.

205
00:15:41,130 --> 00:15:46,010
OK, questo è il metodo di istanza con il doppio barometro ASP eseguito.

206
00:15:46,110 --> 00:15:49,130
E questo è il motivo per cui lo stiamo vedendo.

207
00:15:49,200 --> 00:15:56,400
Quindi questa è una cosa interessante quando il compilatore cerca di trovare un metodo comodo che è stato il

208
00:15:56,400 --> 00:15:58,900
motivo principale di questo strano comportamento.

209
00:15:59,190 --> 00:16:05,790
E ho anche sentito la stessa cosa per un altro metodo che è anche chiamato Does instance matter ma invece di

210
00:16:05,790 --> 00:16:12,100
primer non stiamo avendo l'utente come il parametro su questo è in uso o meno Java e cose del genere.

211
00:16:12,120 --> 00:16:15,070
Abbiamo roba come parametro che è un sottotipo.

212
00:16:15,090 --> 00:16:17,750
Quindi è esattamente lo stesso comportamento.

213
00:16:19,310 --> 00:16:20,910
Non abbiamo nemmeno bisogno di testare i record.

214
00:16:21,000 --> 00:16:21,830
È solo per istruire.

215
00:16:21,850 --> 00:16:27,780
Ma potrebbe darsi che stiamo usando lo stesso tipo di riferimento.

216
00:16:27,850 --> 00:16:32,490
Quindi, come puoi vedere, stavolta stampa un utente con un metodo di istanza.

217
00:16:32,520 --> 00:16:39,400
Ecco, questo è un caso limite e la maggior parte di queste informazioni proviene da un articolo scritto da Kishor.

218
00:16:39,400 --> 00:16:46,120
Sharon è stato l'autore di sfruttare Java 7, che è uno dei buoni libri del libro, quindi ho

219
00:16:46,120 --> 00:16:51,420
intenzione di caricare l'articolo nella sezione risorse in cui fornirò un collegamento a quell'articolo.

220
00:16:51,520 --> 00:16:52,590
Starei bene con loro

221
00:16:53,020 --> 00:16:58,090
Quindi, se sei interessato, puoi guardarli ma scoprire che le informazioni sono presentate qui, quindi

222
00:16:58,090 --> 00:16:59,320
non devi farlo.

223
00:16:59,410 --> 00:17:01,630
Ma se sei un investitore puoi verificarlo anche tu.

224
00:17:02,080 --> 00:17:02,530
E questo è.
