1
00:00:02,240 --> 00:00:04,180
Salve, va bene.

2
00:00:04,240 --> 00:00:05,390
E bentornato.

3
00:00:05,720 --> 00:00:12,530
Dall'8 luglio in poi ci occuperemo di argomenti caldi e interfacce e abbiamo già visto come le

4
00:00:12,530 --> 00:00:14,730
interfacce possono avere metodi predefiniti.

5
00:00:14,750 --> 00:00:22,270
Vediamo quali vantaggi otteniamo rendendo parte dei metodi statici le interfacce per capire perché le interfacce non hanno come

6
00:00:22,370 --> 00:00:29,530
i metodi statici prima di Java 8 come interfacce di libri e i metodi statici non stateless.

7
00:00:29,600 --> 00:00:36,710
Questa è una domanda importante che dobbiamo porre per una buona ragione perché le

8
00:00:36,800 --> 00:00:39,350
interfacce sono specifiche astratte.

9
00:00:39,350 --> 00:00:42,000
Questo è il definire solo i contratti.

10
00:00:42,000 --> 00:00:45,130
Quindi, anche i metodi statici sembrano essere contrari.

11
00:00:45,140 --> 00:00:50,150
Messo fuori dalle interfacce un metodo statico includerebbe l'implementazione.

12
00:00:50,160 --> 00:00:58,690
Sotto contratto non significa implementazione ma le interfacce possono essere associate ai metodi di utilità e sappiamo che i

13
00:00:58,690 --> 00:00:59,850
metodi statici.

14
00:00:59,890 --> 00:01:06,980
Quindi, come si limiterà, per esempio, potremmo avere una chiamata al metodo e copie che prenderanno

15
00:01:06,980 --> 00:01:08,330
due parametri.

16
00:01:08,390 --> 00:01:14,150
Uno è e quello è un numero intero e l'altro è un elemento che è una specie di oggetto e

17
00:01:14,150 --> 00:01:16,130
non dobbiamo preoccuparci del tipo dell'oggetto.

18
00:01:16,340 --> 00:01:22,790
A questo proposito si restituirebbe un'implementazione di lista a meno che, come menzionato in

19
00:01:22,880 --> 00:01:31,610
una lezione precedente, un'interfaccia dal pacchetto util Javadoc sotto scritto per ultimo includesse e copie dell'elemento dato come suggerisce il

20
00:01:31,610 --> 00:01:33,220
nome del metodo.

21
00:01:33,240 --> 00:01:34,940
OK così se e Wall Street.

22
00:01:35,030 --> 00:01:39,020
La lista di ritorno includerebbe tre copie dell'elemento umano.

23
00:01:39,110 --> 00:01:46,540
Quindi questo è un metodo di utilità su questo associato a un elenco di interfacce poiché sta eseguendo una delle sue implementazioni.

24
00:01:48,250 --> 00:01:55,360
Per adattare tali metodi di utilità la convenzione del brevetto è di fornire una classe di utilità compagna

25
00:01:55,630 --> 00:02:03,250
con l'interfaccia sulla classe Collections dal pacchetto Gelada è un esempio di tale classe di raccolte La classe Collections è

26
00:02:04,190 --> 00:02:10,400
stata anche brevemente discussa in precedenza quando si discute prima che importi sotto e metodo di

27
00:02:10,430 --> 00:02:16,360
cui abbiamo appena parlato è in realtà un Materne statico nella classe Collections questa classe

28
00:02:16,420 --> 00:02:21,910
Collections è una classe companion per un'interfaccia denominata collection che è singolare.

29
00:02:21,910 --> 00:02:25,790
Collezione singolare che è una delle principali interfacce in Java.

30
00:02:25,840 --> 00:02:31,770
Pacchetto Udal nella lista e questa è in realtà l'interfaccia secondaria dell'interfaccia di raccolta.

31
00:02:33,270 --> 00:02:37,160
Della classe delle raccolte comprende due tipi di metodi.

32
00:02:37,310 --> 00:02:44,720
I primi sono metodi di tipo algoritmico e questi metodi hanno un'interfaccia come un tipo di parametro

33
00:02:44,720 --> 00:02:51,200
del metodo, oltre ad alcuni algoritmi sugli oggetti che vengono passati in quel parametro.

34
00:02:51,200 --> 00:02:52,430
Ecco alcuni esempi.

35
00:02:52,470 --> 00:02:58,970
Unbe ha già esaminato il metodo saut che ha l'interfaccia di lista come un tipo di parametro

36
00:02:58,970 --> 00:03:02,090
metodo undercharge gli elementi nell'oggetto lista di input.

37
00:03:02,120 --> 00:03:07,400
Il secondo metodo mescolerebbe gli elementi dell'elenco e ne abbiamo discusso brevemente

38
00:03:08,060 --> 00:03:15,510
in una lezione precedente e il terzo avrebbe semplicemente invertito gli elementi nell'elenco di input; questi metodi avrebbero

39
00:03:15,600 --> 00:03:21,490
funzionato bene come metodi predefiniti se fossero stati eseguiti nell'interfaccia appropriata corrispondente all'input .

40
00:03:21,510 --> 00:03:27,490
Ma io sono Akercocke come spostare il metodo soft come una questione diversa nell'interfaccia elenco.

41
00:03:27,630 --> 00:03:33,780
Come abbiamo visto nella precedente struttura di Duckery, questi metodi predefiniti possono essere richiamati direttamente

42
00:03:33,870 --> 00:03:35,160
sull'oggetto stesso.

43
00:03:35,580 --> 00:03:40,550
Quindi, nel caso del metodo calzino, può essere invocato sull'oggetto lista stesso.

44
00:03:42,700 --> 00:03:49,090
Il secondo tipo di metodi nella classe delle collezioni rappresenta madri di fabbrica che costruiscono oggetti di un certo

45
00:03:49,180 --> 00:03:54,010
tipo di interfaccia che è indicato da loro che la sporcizia è ritratta.

46
00:03:55,070 --> 00:03:57,140
Lo facciamo solo perché il primo esempio qui.

47
00:03:57,220 --> 00:03:59,460
E non preoccupiamoci degli altri due.

48
00:03:59,720 --> 00:04:06,150
E questi metodi non possono essere usati solo con metodi diversi in quanto non ci sono oggetti sui quali possono essere impiegati.

49
00:04:06,440 --> 00:04:08,060
Sono semplicemente metodi di fabbrica.

50
00:04:09,570 --> 00:04:11,130
E questo funzionerebbe molto bene.

51
00:04:11,140 --> 00:04:16,960
Metodi isotopici se sono più dell'interfaccia corrispondente al materiale che puoi pagare.

52
00:04:17,340 --> 00:04:22,940
In questo caso, il metodo capias può essere spostato nell'interfaccia dell'elenco che è dimmer.

53
00:04:24,000 --> 00:04:24,550
Per di qua.

54
00:04:24,550 --> 00:04:31,360
Le reti di utilità specifiche per la scheda di interfaccia livellano l'interfaccia stessa anziché in una

55
00:04:31,360 --> 00:04:34,510
classe complementare come la classe della raccolta.

56
00:04:34,510 --> 00:04:40,900
Quindi i progettisti di linguaggio sembrano averlo capito e stavano bene, ma in entrambi i casi hanno metodi statici a causa di

57
00:04:41,930 --> 00:04:45,230
questo McKinnell su come i metodi e le interfacce statici.

58
00:04:45,450 --> 00:04:52,570
Quindi non piaceva a quell'indigente maleducato in classe che lamenta argomenti che sono molto specifici in una classe più grande.

59
00:04:52,660 --> 00:04:54,200
Quindi penso di andare avanti.

60
00:04:54,350 --> 00:05:00,300
Possibile e incontrare le classi di accompagnatori molto o meno come la maggior parte delle questioni di utilità

61
00:05:00,300 --> 00:05:04,460
non possono essere parte e diffondere come metodi imperfetti o statici.

62
00:05:04,690 --> 00:05:12,410
E si noti inoltre che metodi diversi in un'interfaccia possono richiamare metodi statici nella stessa interfaccia.

63
00:05:12,430 --> 00:05:18,770
Si noti che, come nel caso dell'interfaccia modello di default, l'evoluzione continuerà a essere valida se si aggiungono

64
00:05:18,770 --> 00:05:21,230
solo metodi statici a un'interfaccia esistente.

65
00:05:21,620 --> 00:05:27,840
Ad esempio un'interfaccia di funzione rimarrà un'interfaccia funzionale anche se i metodi statici sono adeguati.

66
00:05:28,700 --> 00:05:33,570
In una lezione precedente abbiamo visto come l'interfaccia funzionale è rimasta come interfaccia di funzione.

67
00:05:33,770 --> 00:05:35,660
Dopo averlo scritto prima della materia.

68
00:05:36,170 --> 00:05:41,410
In questo modo funzionerebbe se al posto del metodo predefinito definissimo questo metodo statico.

69
00:05:41,660 --> 00:05:47,990
Ma il vantaggio principale di avere metodi e interfacce statici sembra essere quello che ho visto prima.

70
00:05:48,130 --> 00:05:54,410
I metodi di utilità dell'argomento possono convivere con l'interfaccia stessa e avviarsi in una classe companion separata.

71
00:05:54,500 --> 00:06:01,210
Questo sembra essere il principale vantaggio, infine, esaminiamo alcune proprietà specifiche associate ai

72
00:06:01,210 --> 00:06:04,090
motostatici statici definiti nelle interfacce.

73
00:06:04,240 --> 00:06:10,010
Uno è ovvio che dobbiamo usare un modificatore tattico nella dichiarazione del metodo.

74
00:06:10,120 --> 00:06:17,010
La seconda proprietà è che, a differenza dei metodi statici e delle classi, i metodi statici e le interfacce non

75
00:06:18,000 --> 00:06:19,400
sono ereditati secondo Braungart.

76
00:06:19,460 --> 00:06:21,990
Ecco uno dei designer di linguaggio Java.

77
00:06:21,990 --> 00:06:28,740
Sembra che l'ereditarietà di metodi e classi statici sia di per sé un bug di

78
00:06:28,740 --> 00:06:35,550
progettazione e dopo un'attenta considerazione sembra che non volessero estenderlo alle interfacce soprattutto considerando che le

79
00:06:35,550 --> 00:06:44,020
superinterfacce e quanto identici sono i mercati statici quindi Shardik che non sono ereditati definitivamente dai metodi statici e le

80
00:06:44,040 --> 00:06:48,100
interfacce possono essere richiamate solo tramite il nome dell'interfaccia.

81
00:06:48,350 --> 00:06:51,240
Questo non può essere invocato usando un riferimento a un oggetto.

82
00:06:51,420 --> 00:06:58,780
Sappiamo che gli interessi non possono essere istanziati e che anche i metodi sintattici nelle interfacce non possono essere ereditati.

83
00:06:59,090 --> 00:07:04,940
Non possiamo neanche usare un'istanza di un sottotipo delle voci in quel metodo.

84
00:07:05,240 --> 00:07:12,200
Quindi deve essere interfacciato e ricordare che ho iniziato la mia ricerca che fa parte delle classi in cui ci

85
00:07:12,200 --> 00:07:18,570
si può trovare attraverso le istanze di quelle classi anche se non è consigliabile interromperla o farlo.

86
00:07:18,590 --> 00:07:24,960
Quindi, come puoi vedere, ci sono alcune proprietà uniche associate ai metodi statici definiti nel mondo degli affari.

87
00:07:25,010 --> 00:07:31,960
Non andiamo duro e guardiamo una rapida demo di metodi statici e li usiamo tutti.

88
00:07:31,970 --> 00:07:34,830
Estenderemo il codice dalla demo precedente.

89
00:07:35,190 --> 00:07:40,380
Quindi qui stiamo esaminando l'interfaccia C che conosciamo come l'interfaccia di eccellenza.

90
00:07:40,910 --> 00:07:46,110
E ho appena introdotto un metodo statico che è anche chiamato come metodo statico.

91
00:07:46,110 --> 00:07:46,790
OK.

92
00:07:46,860 --> 00:07:53,940
E come puoi vedere abbiamo il modificatore statico qui e il solito messaggio di stampa che dice

93
00:07:53,940 --> 00:07:56,070
che siamo all'interno dell'interfaccia.

94
00:07:56,220 --> 00:07:58,760
E dentro il metodo statico.

95
00:07:58,770 --> 00:08:01,480
Ora andiamo a testare e testare.

96
00:08:01,550 --> 00:08:08,210
Quindi qui stiamo creando un'istanza di X X è la classe concreta che conosciamo e C è il

97
00:08:08,210 --> 00:08:11,560
tipo di riferimento e stiamo invocando il metodo statico.

98
00:08:11,570 --> 00:08:13,650
Perché sono il tipo di riferimento.

99
00:08:13,820 --> 00:08:15,420
E questo non è possibile.

100
00:08:15,510 --> 00:08:17,060
Come menzionato prima.

101
00:08:17,300 --> 00:08:19,390
Quindi andiamo avanti e compiliamo questa

102
00:08:22,230 --> 00:08:26,050
immagine per vedere la chiamata al metodo di interfaccia statica illegale.

103
00:08:26,220 --> 00:08:30,420
Quindi l'espressione del destinatario dovrebbe essere sostituita con il qualificatore di tipo C ..

104
00:08:30,510 --> 00:08:37,750
Quindi abbiamo bisogno di qualificarlo come letto il nome dell'interfaccia e facciamo solo questo e questo dovrebbe funzionare.

105
00:08:39,330 --> 00:08:40,630
Noi gestiamo questo.

106
00:08:41,070 --> 00:08:44,820
Quindi sta stampando il messaggio.

107
00:08:45,080 --> 00:08:48,800
E abbiamo anche detto che i metodi statici non possono essere ereditati.

108
00:08:49,030 --> 00:08:49,700
Così.

109
00:08:49,730 --> 00:08:55,240
Così ho fatto questo metodo chiamato ereditarietà solo nella classe concreta X.

110
00:08:55,390 --> 00:08:55,980
OK.

111
00:08:56,270 --> 00:08:58,010
Ecco il test di ereditarietà.

112
00:08:58,100 --> 00:09:04,340
Ed ecco questa tattica Muhtar Quindi stiamo solo cercando di invocare il metodo statico e questo non

113
00:09:04,340 --> 00:09:08,570
dovrebbe funzionare perché non è possibile ereditare le questioni statiche.

114
00:09:08,570 --> 00:09:10,350
Quindi fammi compilare questo.

115
00:09:10,790 --> 00:09:18,440
E dice che non è possibile trovare i simboli della materia statica, il che significa che è invisibile qui,

116
00:09:18,440 --> 00:09:25,070
prima di essere rivelato, ma andare è un metodo predefinito e può essere consultato direttamente.

117
00:09:25,110 --> 00:09:30,710
È definito nell'interfaccia C nell'ultima ora circa.

118
00:09:31,220 --> 00:09:33,400
Ma qui ho appena aggiunto una dichiarazione.

119
00:09:33,410 --> 00:09:35,170
Sta invocando il metodo statico.

120
00:09:35,180 --> 00:09:40,640
Quindi, il metodo predefinito che chiamiamo chiamiamo i metodi statici, il metodo statico è come un metodo di

121
00:09:40,640 --> 00:09:41,240
supporto.

122
00:09:41,410 --> 00:09:41,930
OK.

123
00:09:41,990 --> 00:09:48,190
Quindi supponiamo che la questione stia usando il metodo di utilità che è il metodo statico.

124
00:09:48,280 --> 00:09:54,080
OK, compiliamo e gestiamo semplicemente questo.

125
00:09:54,090 --> 00:10:00,230
Quindi qui discutiamo la questione che Goya sta entrando in lavoro da qui.

126
00:10:00,420 --> 00:10:06,900
Quindi, perché la materia passa, che è un metodo predefinito, viene ereditata e sta entrando in gioco e viene

127
00:10:06,960 --> 00:10:08,720
fatto invocare il metodo statico.

128
00:10:08,740 --> 00:10:13,870
E quindi stiamo vedendo i due messaggi e questo è tutto su di loro.

129
00:10:13,980 --> 00:10:16,390
Fammi aprire rapidamente anche il nostro cane.

130
00:10:16,420 --> 00:10:18,840
Sono sicuro che tu sia una delle interfacce.

131
00:10:18,840 --> 00:10:23,490
Si chiama interfaccia concorrente che proviene dal punto Java.

132
00:10:23,500 --> 00:10:27,380
Si fa il pacchetto su ci troviamo all'interno del documento Java 8.

133
00:10:27,540 --> 00:10:34,870
OK, questa interfaccia di confronto la vedremo nel capitolo quadro delle collezioni, ma eccola qui.

134
00:10:34,930 --> 00:10:42,220
Come si può vedere il dollaro si avvicina leggermente in quanto ha Papps e ha alcuni metodi statici

135
00:10:42,240 --> 00:10:42,810
qui.

136
00:10:43,060 --> 00:10:44,690
Puoi vedere il modificatore statico.

137
00:10:44,950 --> 00:10:48,030
E come al solito ha anche alcuni metodi astratti.

138
00:10:49,180 --> 00:10:56,280
Così Sadik my è quello che ho fatto di recente con Java 8 e questa mappa mostra solo metodi diversi.

139
00:10:56,310 --> 00:11:01,070
OK ci sono diversi metodi in alto mostra solo diversi metodi che sono

140
00:11:01,490 --> 00:11:08,420
stati aggiunti in questa interfaccia un metodo di istanza è fondamentalmente un'unione di entrambi i metodi astratti e di default.

141
00:11:08,420 --> 00:11:14,540
Quindi non include i metodi statici di certi gruppi, ma i metodi astratti così come i metodi predefiniti, mentre le questioni

142
00:11:14,570 --> 00:11:19,270
astratte potrebbero solo astrarre se è sul lato anteriore potrebbe solo prima che sia importante.

143
00:11:19,310 --> 00:11:22,240
Quindi volevo solo mostrare questa differenza nel documento Java.

144
00:11:22,370 --> 00:11:31,560
E se sostituisci questo otto con sette, allora vedi la vecchia interfaccia utente o i documenti.

145
00:11:31,560 --> 00:11:35,380
Quindi questo è dal drama 7 doc e come puoi vedere ci sono solo due metodi astratti.

146
00:11:35,640 --> 00:11:40,720
Quindi con John 8 sai sia prima che i metodi statici cosa ho fatto.

147
00:11:40,950 --> 00:11:43,720
E così anche il documento API sembra diverso.

148
00:11:44,100 --> 00:11:47,020
Quindi questo riguarda i metodi statici.

149
00:11:47,170 --> 00:11:47,440
Walter.
