1
00:00:02,180 --> 00:00:02,980
Ciao.

2
00:00:03,080 --> 00:00:04,230
Questo è determinato a noodle.

3
00:00:04,250 --> 00:00:05,480
E bentornato.

4
00:00:05,480 --> 00:00:08,910
Non diamo un'occhiata a qualcosa chiamato Metodo o quale caricamento.

5
00:00:09,140 --> 00:00:16,720
A volte ha senso mantenere più versioni dello stesso metodo all'interno della stessa classe e per più versioni

6
00:00:16,760 --> 00:00:22,760
intendiamo che i metodi avranno lo stesso nome ma prenderebbero dati di input

7
00:00:22,760 --> 00:00:30,850
diversi che è solo i parametri del metodo differirebbero su questa funzionalità a cui si fa riferimento poiché il sovraccarico

8
00:00:31,900 --> 00:00:38,440
del metodo in alcuni scenari che forniscono metodi sovraccaricati potrebbe essere un requisito importante del software.

9
00:00:38,680 --> 00:00:45,520
Mentre in alcuni altri scenari possono semplicemente essere utili ai clienti del cliente come

10
00:00:45,580 --> 00:00:54,340
metodo nel metodo sovietico di Walker che sovraccarica più metodi all'interno della stessa classe hanno lo stesso nome ma

11
00:00:54,340 --> 00:01:03,350
hanno parametri diversi, quindi per ordinare su un metodo è necessario modificare l'elenco dei parametri e la modifica dell'elenco dei

12
00:01:03,350 --> 00:01:10,400
parametri implicherebbe che il numero dei parametri dei tipi di parametro sia entrambi diversi sarebbe

13
00:01:10,400 --> 00:01:19,960
diverso cambiando solo il tipo restituito non funziona sull'istanza del libro non sono metodi statici possono essere sovraccaricati e qui ci

14
00:01:19,990 --> 00:01:27,830
sono alcuni esempi validi di sovraccarico del metodo in cui il i metodi hanno lo stesso nome

15
00:01:27,950 --> 00:01:30,780
ma elenchi di parametri diversi.

16
00:01:30,800 --> 00:01:37,480
Si noti che nel secondo e terzo esempio l'ordine dei tipi di parametri del metodo è cambiato e questo è

17
00:01:37,490 --> 00:01:42,940
abbastanza buono da renderlo un esempio di caricamento dell'ordine di metodo valido nel secondo esempio.

18
00:01:42,950 --> 00:01:48,000
B come è seguita la macchina, mentre nel terzo abbiamo seguito la macchina.

19
00:01:49,220 --> 00:01:53,440
Nessun quarto esempio è interessante e devi tenerlo a mente.

20
00:01:53,510 --> 00:02:02,210
Ha abbreviato come tipo di parametro mentre il primo esempio lo ha come tipo di parametro che è entrambi tipi di dati

21
00:02:02,210 --> 00:02:10,550
interi ma i due metodi si qualificano ancora come esempi validi di sovraccarico del metodo, quindi il numero di parametri

22
00:02:10,550 --> 00:02:11,950
è lo stesso.

23
00:02:12,020 --> 00:02:18,140
È solo che il tipo di parametro è cambiato ma sono comunque tipi di parametri di metodo compatibili.

24
00:02:18,140 --> 00:02:25,130
Tuttavia si qualificherebbe come un esempio valido, quindi sarebbe valido fino a quando i parametri

25
00:02:25,190 --> 00:02:27,390
non saranno esattamente identici.

26
00:02:27,600 --> 00:02:32,350
No diamo un'occhiata ad alcune istruzioni di invocazione del metodo per questo esempio particolare.

27
00:02:34,150 --> 00:02:40,990
Ora, se questo è un metodo nell'istruzione location, invocherebbe il secondo un metodo caricato come primo

28
00:02:40,990 --> 00:02:41,780
argomento.

29
00:02:41,780 --> 00:02:48,690
E mentre in secondo luogo questo può solo se abbiamo questo, questo invocherebbe il primo metodo.

30
00:02:49,300 --> 00:02:56,610
E questo perché Thomson è un intellettuale e anche il primo metodo accetta un previsto.

31
00:02:57,160 --> 00:03:04,120
Quindi anche il quarto metodo ha sparato come tipo di dati e Posen può essere assegnato a uno corto

32
00:03:04,120 --> 00:03:07,210
ma comunque veloce, poiché è una corrispondenza esatta.

33
00:03:07,420 --> 00:03:16,040
Quindi il compilatore prova a trovare un metodo con parametri con lo stesso identico elemento di dati ma se hai qualcosa del

34
00:03:16,040 --> 00:03:23,860
genere in cui la variabile B è un byte e B è l'argomento e l'invocazione del metodo, in questo caso

35
00:03:23,870 --> 00:03:29,960
l'ultimo metodo che è stato sparato come il tipo di parametro del metodo verrebbe richiamato.

36
00:03:29,960 --> 00:03:36,140
In questo caso il compilatore dovrebbe prima provare a trovare un metodo con lo stesso parametro che esiste se

37
00:03:36,230 --> 00:03:42,620
esiste un metodo del profilo di aggiornamento con byte come tipo di parametro e poiché non è presente, vedrebbe se

38
00:03:42,620 --> 00:03:47,750
esiste un metodo con il tipo di dati successivo più grande quale sarebbe l'ultimo metodo.

39
00:03:48,620 --> 00:03:55,580
Quindi, poiché non esiste una corrispondenza esatta, il compilatore sta scegliendo un metodo che ha un diritto

40
00:03:55,580 --> 00:04:02,970
compatibile, ma a quel tipo di dati comparabile dovrebbe essere più specifico, anche se sia la prima che l'ultima

41
00:04:02,970 --> 00:04:10,920
versione di come siano compatibili i tipi di dati compatibili, il compilatore sceglie l'ultimo più specifico di questo è che

42
00:04:10,920 --> 00:04:19,600
il prossimo tipo di dati più grande dopo byte non è che sto dicendo che il compilatore sceglie quale metodo deve essere invocato.

43
00:04:20,380 --> 00:04:27,760
E questo perché durante il processo di completamento il compilatore nel campo dei byte sul metodo che deve essere

44
00:04:27,760 --> 00:04:34,950
invocato in fase di esecuzione da JVM e questo processo di compilazione che seleziona il metodo da invocare

45
00:04:35,170 --> 00:04:42,100
e successivamente JVM che utilizza tali informazioni in fase di esecuzione si chiama metodo vincolante e che

46
00:04:42,190 --> 00:04:50,190
è qualcosa di cui parleremo più avanti in una sezione diversa in quanto comporta più discussioni non dato che la variabile

47
00:04:50,460 --> 00:04:55,920
b qui è inizializzata con un valore più piccolo per cinquanta anziché migliaia e

48
00:04:55,920 --> 00:05:00,000
questo perché migliaia non si adattano a byte strani.

49
00:05:00,010 --> 00:05:03,680
Ora diamo un'occhiata anche a esempi di sovraccarico non validi.

50
00:05:03,850 --> 00:05:12,410
Diciamo che abbiamo questa definizione di metodo ora se aggiungessimo questo nuovo metodo all'interno della stessa classe non sarebbe un

51
00:05:12,410 --> 00:05:14,520
ordine di metodo valido.

52
00:05:15,220 --> 00:05:19,030
E questo perché solo il tipo restituito è diverso.

53
00:05:19,130 --> 00:05:23,480
Quindi questo è illegale sotto compilatore segnalerebbe che abbiamo un metodo duplicato.

54
00:05:23,870 --> 00:05:24,110
Va bene.

55
00:05:24,110 --> 00:05:25,850
Quindi avremo un errore di compilazione.

56
00:05:27,740 --> 00:05:30,230
Ed ecco un evidente esempio non valido.

57
00:05:30,320 --> 00:05:34,060
La semplice modifica del solo nome del parametro non funzionerà qui.

58
00:05:34,100 --> 00:05:35,630
Il nome del parametro è IDI.

59
00:05:35,780 --> 00:05:43,240
Bene, il primo metodo ha avuto l'aggiunta neutrale di un metodo statico con la stessa firma del

60
00:05:43,240 --> 00:05:45,010
metodo non funzionerà.

61
00:05:45,040 --> 00:05:48,100
Questo è il primo metodo in questo caso è un metodo di istanza.

62
00:05:48,400 --> 00:05:56,360
Sebbene si tratti di un metodo statico, in tutti gli esempi viene visualizzato un errore del compilatore che dice che

63
00:05:56,360 --> 00:06:00,770
un metodo duplicato viene aggiunto alla validità dei metodi sovraccarichi.

64
00:06:00,770 --> 00:06:07,010
L'unico requisito come elenco di parametri deve essere diverso sul nome del metodo deve essere inviato.

65
00:06:07,850 --> 00:06:10,220
Quindi questo è un metodo che sovraccarica.

66
00:06:10,220 --> 00:06:12,900
Ora andiamo avanti e facciamo un veloce fuori di esso.

67
00:06:15,630 --> 00:06:21,330
Ok, eccoci nella classe demo di base e in una delle lezioni precedenti abbiamo scritto questo metodo

68
00:06:21,330 --> 00:06:22,240
chiamato go.

69
00:06:22,370 --> 00:06:28,090
E questo era quando si dimostrava il meccanismo di passaggio per valore per i riferimenti agli oggetti.

70
00:06:28,290 --> 00:06:32,440
Quindi andiamo avanti e usiamo questo metodo anche in questa demo.

71
00:06:32,460 --> 00:06:35,460
Quindi andiamo avanti e ordiniamo questo metodo.

72
00:06:35,490 --> 00:06:38,710
Quindi qui il tipo di parametro è end array.

73
00:06:38,730 --> 00:06:41,180
Scriviamo altri due metodi.

74
00:06:41,190 --> 00:06:47,010
Uno prenderà un int come tipo di parametro del metodo mentre l'altro uno shock.

75
00:06:47,460 --> 00:06:52,530
Quindi lasciami cambiare anche questo e fammi chiamare I.

76
00:06:52,900 --> 00:07:01,320
E lascia che cambi questo in Shahed, quindi fa l'esempio simile che abbiamo visto nella diapositiva.

77
00:07:01,320 --> 00:07:06,540
Lasciami chiamare e fammi copiare qui.

78
00:07:19,340 --> 00:07:22,730
Bene, quindi sono stati aggiunti due metodi nuovi o caricati.

79
00:07:22,760 --> 00:07:25,870
Quindi ora abbiamo tre metodi e tre metodi tutti caricati.

80
00:07:25,880 --> 00:07:33,160
Quindi qui stiamo già lavorando a questo particolare il primo metodo qui usando NRT.

81
00:07:33,170 --> 00:07:36,490
Ora diciamo che vanno a migliaia.

82
00:07:36,500 --> 00:07:41,390
Abbiamo visto questo nella diapositiva lì il nome del metodo era profilo di aggiornamento.

83
00:07:41,390 --> 00:07:43,410
Ma eccolo qui.

84
00:07:43,760 --> 00:07:54,930
E definiamo anche questa variabile chiamata B che è disattivata per byte su diciamo andiamo via B.

85
00:07:54,970 --> 00:07:58,720
Quindi in questo caso sarebbe il primo metodo che viene invocato qui.

86
00:07:58,720 --> 00:08:04,180
Il secondo metodo go viene invocato perché Tauzin è un intellettuale e il compilatore

87
00:08:04,180 --> 00:08:07,460
sceglierebbe questo sul terzo è byte signore.

88
00:08:07,570 --> 00:08:09,700
Ma non passa non c'è.

89
00:08:09,700 --> 00:08:14,310
Quindi prenderà l'ultimo metodo che è il più specifico.

90
00:08:14,310 --> 00:08:14,610
Va bene.

91
00:08:14,650 --> 00:08:19,070
È un tipo compatibile e ha il tipo di dati successivo più grande.

92
00:08:19,150 --> 00:08:21,310
Quindi andiamo avanti, compiliamo ed eseguiamo

93
00:08:24,950 --> 00:08:25,340
bene.

94
00:08:25,360 --> 00:08:26,080
Ecco qui.

95
00:08:26,740 --> 00:08:33,240
Quindi, quando abbiamo invocato per la prima volta, ha invocato il metodo che ha l'array come tipo di parametro.

96
00:08:33,460 --> 00:08:40,570
Poi quando abbiamo superato Tauzin ha invocato il secondo campo da golf e io per l'ultimo che ha

97
00:08:40,660 --> 00:08:42,750
invocato ci ha sparato.

98
00:08:43,000 --> 00:08:44,040
Quindi è tutto.

99
00:08:44,080 --> 00:08:50,470
Vorrei solo andare avanti e digitare tutti questi metodi e provarlo e provare anche gli esempi non validi

100
00:08:50,470 --> 00:08:52,720
che abbiamo visto in questa luce.

101
00:08:53,100 --> 00:08:53,780
OK.

102
00:08:53,890 --> 00:08:58,090
Ora lascia che ti mostri anche un paio di esempi nella libreria Java stessa.

103
00:08:58,780 --> 00:09:06,070
Quindi questa è la classe del flusso di stampa e la classe del flusso di stampa come ciò che viene utilizzato quando invochiamo la stampa punto

104
00:09:06,070 --> 00:09:10,980
o punto del sistema nella stampa e quindi come parte della stampa del flusso di stampa.

105
00:09:11,050 --> 00:09:16,900
E lascia che ti mostri la stampa e i metodi diversi, come puoi vedere ci sono diversi

106
00:09:16,900 --> 00:09:20,020
genitori e metodi su questi sono tutti metodi sovraccarichi.

107
00:09:20,020 --> 00:09:26,200
Quindi, se invochi print e quindi con la macchina come argomento, questo metodo viene invocato se passi

108
00:09:26,200 --> 00:09:28,090
un doppio, quindi viene invocato.

109
00:09:28,120 --> 00:09:28,390
OK.

110
00:09:28,390 --> 00:09:30,190
E se si passa una stringa che viene invocata.

111
00:09:30,550 --> 00:09:35,560
Ecco dove il flusso di stampa su un'altra classe qui viene chiamato come array che

112
00:09:35,560 --> 00:09:37,750
vedremo nella sezione framework delle collezioni.

113
00:09:37,750 --> 00:09:41,830
Quindi anche qui ha molti metodi e qui puoi

114
00:09:44,690 --> 00:09:49,060
vedere un sacco di metodi di ordinamento che sono tutti sovraccarichi.

115
00:09:49,070 --> 00:09:53,870
Quindi questo prende un galleggiante Harry e questo prende il Rotary insieme ad altre due estremità.

116
00:09:53,900 --> 00:09:55,150
Questo prende una voce.

117
00:09:55,400 --> 00:10:02,150
Quindi questo metodo è responsabile dell'ordinamento degli elementi dell'array, sia in ordine crescente che in

118
00:10:02,150 --> 00:10:03,710
un certo ordine.

119
00:10:03,710 --> 00:10:11,090
Quindi tutti questi sono anche metodi sovraccarichi e sono necessari per i programmi di quattro ore.

120
00:10:11,090 --> 00:10:14,330
E così i progettisti hanno esposto tutti questi metodi.

121
00:10:14,930 --> 00:10:18,540
Questo è ciò che è la libreria Java e questo è il metodo che sovraccarica.

122
00:10:18,620 --> 00:10:19,260
Grazie.

123
00:10:19,260 --> 00:10:20,450
E ci vediamo nella prossima lezione.
