1
00:00:02,210 --> 00:00:04,540
Ciao, questo è quello da fare.

2
00:00:04,820 --> 00:00:10,620
Quindi non abbiamo finito con il capitolo su Credo che sia una copertura piuttosto solida dei

3
00:00:10,660 --> 00:00:17,530
concetti di base del progetto orientato agli oggetti e queste sono alcune delle caratteristiche orientate agli oggetti che sono state discusse.

4
00:00:17,860 --> 00:00:24,370
Penso che la cosa più importante che abbiamo fatto è stata che per capire la scatola bianca la parte che

5
00:00:24,370 --> 00:00:31,300
la maggior parte degli ingegneri si confonde è quando usare un vetro astratto con arsis quando usare un'interfaccia c'è sempre un

6
00:00:31,300 --> 00:00:33,870
po 'di confusione attorno a questi concetti.

7
00:00:33,940 --> 00:00:39,090
Penso che l'abbiamo affrontato abbastanza efficacemente usando il nostro caso di studio come sfondo.

8
00:00:39,110 --> 00:00:45,870
Inoltre, anche le interfacce di un po 'hall possono essere classificate in interfacce di sotto-rappresentazione sensate.

9
00:00:45,890 --> 00:00:51,890
E penso che sia piuttosto importante dato che la maggior parte dei libri sono corsi che in genere non vengono

10
00:00:51,890 --> 00:00:52,850
discussi in Verby.

11
00:00:53,300 --> 00:00:59,390
Infine, abbiamo anche discusso la motivazione alla base dell'introduzione di diversi metodi e interfacce ON-TOPIC

12
00:00:59,450 --> 00:01:00,750
nell'8 luglio.

13
00:01:00,860 --> 00:01:05,930
Quindi la parte multi-missione è molto importante e li abbiamo esaminati utilizzando alcuni scenari realistici

14
00:01:06,020 --> 00:01:10,260
come esempi, in modo tale da avvertire l'esigenza di tali funzionalità.

15
00:01:10,280 --> 00:01:15,770
Quindi penso che nel complesso abbiamo una solida base e, se non ti senti ancora a tuo agio, ti suggerirei

16
00:01:15,770 --> 00:01:20,570
di rivedere la cosa ancora una volta poiché questo ha molto a che fare con il design.

17
00:01:20,600 --> 00:01:26,010
È normale che sarebbe necessario uno sforzo maggiore per far affondare davvero questi concetti.

18
00:01:26,940 --> 00:01:31,410
Potrebbe richiedere anche un po 'di convenienza per essere veramente a proprio agio con questi concetti.

19
00:01:32,270 --> 00:01:39,480
Quindi andiamo avanti e facciamo un breve riassunto delle cose importanti che hai imparato in questo capitolo.

20
00:01:39,630 --> 00:01:45,480
Abbiamo iniziato questo capitolo introducendo una nuova funzione orientata agli oggetti, chiamata Lassus astratto, che

21
00:01:45,480 --> 00:01:50,420
può spiegare come i metodi astratti che l'astratto muto parla da sé.

22
00:01:50,760 --> 00:01:53,830
Questo è qualcosa di astratto nella classe.

23
00:01:53,970 --> 00:02:02,100
Non è concreto, fondamentalmente astratto implica che le classi siano abbastanza astratte o abbastanza generiche che almeno uno dei

24
00:02:02,160 --> 00:02:08,130
suoi metodi non può avere un'implementazione che è l'implementazione che deve essere fornita

25
00:02:08,130 --> 00:02:09,280
da sottoclassi.

26
00:02:09,570 --> 00:02:17,240
Un tale metodo con un'implementazione è chiamato come un metodo astratto, quindi invece non sono concrete le

27
00:02:17,420 --> 00:02:19,690
classi astratte non sono istanziate.

28
00:02:20,120 --> 00:02:22,700
Non ha senso istanziarli.

29
00:02:23,030 --> 00:02:28,240
Invoca un metodo astratto che semplicemente non ha alcuna implementazione.

30
00:02:28,540 --> 00:02:35,980
Ma la mia cosa è che le classi astratte definiscono anche un contratto o uno scopo comune su

31
00:02:36,130 --> 00:02:43,610
cui è utile definire il comportamento del codice delle sottoclassi e anche nel fornire ai dati tutto il polimorfismo.

32
00:02:43,650 --> 00:02:52,250
Ciò è importante non che le classi di ostruzione possano includere anche le sottoclassi di stato che possono ereditare e tutto questo è venuto

33
00:02:52,250 --> 00:02:54,620
a causa di questo nuovo requisito.

34
00:02:54,740 --> 00:03:01,840
Volevamo estendere Threepio dimentica che se avessimo voluto inserire alcuni segnalibri come unbid per bambini si sarebbe presentato

35
00:03:01,840 --> 00:03:04,260
sotto le nuove cose buone.

36
00:03:05,040 --> 00:03:12,630
Aveva il mantenere me ammissibile Materne è astratto in quanto la mia classe è troppo astratta per fornire

37
00:03:12,630 --> 00:03:19,820
qualsiasi implementazione per esso e così sottoscrivi quello che ho fatto e che ha ottenuto in specifiche.

38
00:03:19,820 --> 00:03:25,670
Sappiamo che con le classi astratte e con i modelli astratti si deve sapere in che modo

39
00:03:27,310 --> 00:03:33,740
i modificatori astratti nella loro dichiarazione una classe astratta possono sapere in che modo le questioni astratte e concrete del

40
00:03:33,740 --> 00:03:41,030
libro qui sono alcune specifiche riguardo ai soli metodi astratti matematica astratta che è come nessuno alla fine con un punto e virgola

41
00:03:41,030 --> 00:03:42,140
deve essere ignorato.

42
00:03:42,200 --> 00:03:46,130
E questo significa anche che i metodi astratti non possono essere statici.

43
00:03:46,130 --> 00:03:49,650
Questo perché i metodi statici non possono essere modificati in.

44
00:03:49,890 --> 00:03:58,010
E se c'è anche un solo metodo astratto allora la classe deve essere una classe astratta, infine la sottoclasse di

45
00:03:58,010 --> 00:04:05,180
una classe astratta è anche astratta quindi non è necessario implementare alcun metodo astratto non implementato.

46
00:04:05,180 --> 00:04:13,940
Possono essere implementati da una o più sottoclassi concrete di questo abstract, supperendomi un po '.

47
00:04:13,950 --> 00:04:20,420
Un'altra caratteristica molto importante orientata agli oggetti, chiamata interfacce, può essere utilizzata o crema per

48
00:04:20,480 --> 00:04:21,790
introdurre interfacce.

49
00:04:21,920 --> 00:04:28,220
Avevamo un nuovo requisito di cagare segnalibri amichevoli con un sito pop-up e volevamo farlo solo

50
00:04:28,280 --> 00:04:31,550
per libri e chiacchiere ma non per film.

51
00:04:31,940 --> 00:04:38,740
Quindi il requisito era che volevamo che questa funzionalità relativa alla condivisione terminasse solo con classi triple,

52
00:04:39,140 --> 00:04:45,590
ma non più a causa di ciò che volevamo un protocollo comune in atto e inizialmente

53
00:04:45,590 --> 00:04:50,910
abbiamo giocato con l'idea del libro e dell'estetica incrociando una nuova superclasse conscionable.

54
00:04:51,320 --> 00:04:57,380
Ma presto abbiamo dovuto abbandonare questa idea come libro su Webling che già ci estende segnalandoci su

55
00:04:57,380 --> 00:05:00,070
sappiamo che Java non supporta l'ereditarietà multipla.

56
00:05:00,200 --> 00:05:03,080
Quindi la soluzione era usare le interfacce come mostrato qui.

57
00:05:04,780 --> 00:05:11,350
Quindi, almeno dalla nostra storia, potrebbe sembrare che il fatto che l'ereditarietà multipla non sia possibile in Java è

58
00:05:11,350 --> 00:05:16,040
ciò che ci costringe a usare le interfacce e questo è sbagliato.

59
00:05:16,330 --> 00:05:19,930
È stato semplicemente usato come una ragione per introdurre interfacce.

60
00:05:19,930 --> 00:05:27,000
La chiave è che le imprese sono appropriate per certe cose, alcune interfacce sono appropriate

61
00:05:27,140 --> 00:05:30,460
insieme alla classe o definiscono funzionalità aggiuntive.

62
00:05:30,920 --> 00:05:38,210
Nel caso in cui la capacità aggiuntiva fosse la capacità di condividere i segnalibri, tali interfacce

63
00:05:38,210 --> 00:05:40,600
vengono comunemente chiamate mixup.

64
00:05:40,730 --> 00:05:46,900
Quindi, anche se non vi fosse alcuna perdita di segnalibri, è necessario implementare condivisibile come

65
00:05:46,910 --> 00:05:49,380
interfaccia piuttosto che come classe.

66
00:05:49,500 --> 00:05:56,280
A parte il mix sense e l'ufficio e anche definire le funzionalità di base, è un processo davvero

67
00:05:56,400 --> 00:05:59,600
per un'interfaccia così come rappresenta una nuova interfaccia.

68
00:05:59,730 --> 00:06:03,760
Basta notare che non dice che l'interfaccia dati non è un termine ufficiale.

69
00:06:03,810 --> 00:06:06,240
È stato appena introdotto in questo corso.

70
00:06:06,330 --> 00:06:09,820
E 'stato solo qualcosa che ho trovato in base a come vengono utilizzati.

71
00:06:09,960 --> 00:06:16,860
OK, tutti noi otteniamo un terzo tipo di interfaccia Carmike che entra in aree che sono

72
00:06:16,980 --> 00:06:20,180
semplicemente un'interfaccia senza metodi implementando tale interfaccia.

73
00:06:20,260 --> 00:06:25,040
Una classe sta specificando di avere determinate proprietà su un solo esempio.

74
00:06:25,090 --> 00:06:30,660
Se hai parlato di Serializable e Duffys implementando Serializable, le classi annunciano

75
00:06:30,660 --> 00:06:37,590
che ha una proprietà Serializable che sta annunciando che sta dando il permesso per quegli

76
00:06:37,590 --> 00:06:39,480
oggetti di essere serializzati.

77
00:06:39,480 --> 00:06:46,630
Quindi se una classe non implementa Serializable vuol dire che i suoi oggetti non possono essere serializzati arrivando

78
00:06:46,630 --> 00:06:47,530
a specifiche.

79
00:06:47,590 --> 00:06:54,980
L'interfaccia modificatore deve essere utilizzata nella dichiarazione dell'interfaccia una sottoclasse che implementa un'interfaccia utilizzerà

80
00:06:54,990 --> 00:07:02,660
la parola chiave implements mentre un'interfaccia secondaria che estende un'interfaccia utilizzerà la parola chiave eccellenza.

81
00:07:02,910 --> 00:07:10,590
Non che una classe possa implementare più interfacce in modo simile e aumentare può estendere

82
00:07:10,590 --> 00:07:14,380
interfacce multiple come una perdita astratta.

83
00:07:14,400 --> 00:07:22,180
Un'interfaccia non è un'istanza, quindi può essere utilizzata solo come tipo di riferimento e non come tipo di oggetto.

84
00:07:22,200 --> 00:07:27,970
Fondamentalmente le interfacce sono stateless e non come le classi.

85
00:07:28,030 --> 00:07:34,040
Le interfacce possono solo tenere in considerazione ciò che è solo pubblico o prima di Access.

86
00:07:35,840 --> 00:07:42,880
Qui ci sono tutti i membri che un'interfaccia può in che modo l'interfaccia è principalmente una specifica astratta

87
00:07:43,390 --> 00:07:50,750
e quindi per lo più vedrai solo i modelli e le interfacce astratti non intrusivi e anche la sua tattica.

88
00:07:50,830 --> 00:07:55,440
Le variabili finali delle parole di Della Aidan in deface possono come.

89
00:07:55,450 --> 00:07:57,020
Prima su metodi statici.

90
00:07:57,270 --> 00:08:04,160
E infine le interfacce possono anche includere tipi annidati che possono essere classi annidate che iniziano con Gesù.

91
00:08:04,210 --> 00:08:09,330
So che tutti questi membri che stiamo vedendo qui sono pubblici prima.

92
00:08:09,920 --> 00:08:18,290
Dick non ha letto o previsto che Axelson di noi Dick fosse un livello di accesso rapido solo se l'interfaccia stessa

93
00:08:18,320 --> 00:08:21,040
avesse un livello di accesso predefinito.

94
00:08:21,160 --> 00:08:22,030
Destra.

95
00:08:22,160 --> 00:08:29,600
E come questione di stile, si raccomanda di non specificare esplicitamente quel modificatore di default.

96
00:08:29,760 --> 00:08:35,280
E qui ci sono i vantaggi dei metodi predefiniti che possono far parte delle interfacce da Galois 8 in poi.

97
00:08:35,310 --> 00:08:41,220
La ragione principale dell'introduzione prima era la valutazione dell'interfaccia che può essere aggiunta

98
00:08:41,220 --> 00:08:45,740
a un'interfaccia senza rompere il codice che implementa l'interfaccia.

99
00:08:45,960 --> 00:08:52,780
Non è necessario nemmeno ricompilare per implementare Inkheart sui client del codice di implementazione in grado di invocare i

100
00:08:52,800 --> 00:08:54,690
nuovi metodi aggiunti di recente.

101
00:08:55,820 --> 00:09:01,100
Non si tratta solo di default per l'interfaccia, ma si può aggiungere anche quando l'interfaccia è

102
00:09:01,130 --> 00:09:03,470
stata progettata per la prima volta.

103
00:09:03,620 --> 00:09:10,640
In questo senso è un'interfaccia con l'implementazione predefinita e una sottoclasse può fornire

104
00:09:10,700 --> 00:09:12,700
un'implementazione più specifica.

105
00:09:12,870 --> 00:09:18,910
O può semplicemente usarlo per un'implementazione può essere usato un modello diverso invece di fornire quei

106
00:09:18,910 --> 00:09:21,500
metodi in una classe complementare separata.

107
00:09:21,610 --> 00:09:26,070
Corretta ma la classe di raccolta e il pacchetto totale Javadoc.

108
00:09:26,140 --> 00:09:32,780
Abbiamo anche visto come Sautner che può essere spostato nella lista dell'interfaccia, infine.

109
00:09:32,870 --> 00:09:39,310
Si tratta di interfacce a basso funzionamento, proprio come interfacce funzionali funzionali interfaccie e di quelle interfacce, che

110
00:09:39,320 --> 00:09:44,290
come un solo metodo astratto non ha l'aspetto di quelle interfacce di funzione.

111
00:09:44,350 --> 00:09:47,000
E anche espressione lambda.

112
00:09:47,080 --> 00:09:53,190
Ha detto che un'espressione lambda può essere passata come argomento a un metodo che ha un

113
00:09:53,390 --> 00:09:55,000
parametro funzionale e metrico.

114
00:09:55,170 --> 00:09:58,890
Altrimenti avremmo un errore di compilazione.

115
00:09:58,900 --> 00:10:04,930
Infine abbiamo visto che le interfacce possono anche definire i metodi di arresto dall'8 luglio in poi.

116
00:10:04,930 --> 00:10:10,630
Il vantaggio principale di questo è che sono anche utili ed eliminano le classi companion.

117
00:10:11,170 --> 00:10:14,200
Quindi questo è uno dei vantaggi dei seguenti metodi.

118
00:10:14,210 --> 00:10:20,860
Tuttavia, a partire da questo è un buon candidato per sostituire i metodi di fabbrica che sono responsabili

119
00:10:20,860 --> 00:10:23,150
della creazione di oggetti diversi metodi.

120
00:10:23,170 --> 00:10:30,250
D'altra parte ci sono buoni candidati per sostituire i metodi che gli oggetti di input di Man-Yi

121
00:10:30,330 --> 00:10:36,770
polit hanno insolitamente disattivato il loro stato come il metodo soft nella classe collections.

122
00:10:36,770 --> 00:10:43,070
Ecco alcuni efficaci Demp di luglio che sono stati discussi in questo capitolo che commenta per preferire

123
00:10:43,130 --> 00:10:49,610
le interfacce tutte erano classi astratte su questo rende ancora più senso di un Djala 8 in poi.

124
00:10:49,850 --> 00:10:54,380
Come le interfacce possono anche il modo in cui i metodi concreti non si interfacciano così.

125
00:10:54,380 --> 00:10:58,130
L'evoluzione non è più un problema prima dell'8 luglio.

126
00:10:58,130 --> 00:11:04,940
Se Dola preferiva quell'interfaccia potrebbe quindi prendere in considerazione l'idea di utilizzare concetti astratti, ma le classi di attività

127
00:11:06,130 --> 00:11:11,420
sono ancora necessarie quando è necessario definire classi di offset del comportamento rappresentativo.

128
00:11:11,630 --> 00:11:14,550
Ma quello stato, Ingworth, ha ragione.

129
00:11:14,560 --> 00:11:20,810
E ricordiamo anche che le classi astratte vengono utilizzate per fornire implementazioni scheletriche al di fuori

130
00:11:21,940 --> 00:11:22,910
delle interfacce.

131
00:11:23,050 --> 00:11:30,760
Ogni volta che è possibile, cerca di utilizzare un'interfaccia come riferimento in tutte le dichiarazioni di variabili solf e usali

132
00:11:30,760 --> 00:11:33,520
come tipi di ritorno del metodo.

133
00:11:33,910 --> 00:11:37,270
Questo è un elemento importante e anche facile da seguire.

134
00:11:38,200 --> 00:11:44,140
La terza afferma che dobbiamo usare le gerarchie di classi come il modo in cui abbiamo fatto

135
00:11:44,140 --> 00:11:51,490
in custodia e iniziare a usarlo per tornare indietro a un codice più pulito e più pulito, oltre che a un codice flessibile.

136
00:11:51,970 --> 00:11:52,910
Quindi questo è tutto.

137
00:11:52,940 --> 00:11:55,220
E questa è la fine di Patu, ovviamente.

138
00:11:55,240 --> 00:12:02,350
E, come accennato in precedenza, è una copertura piuttosto solida dei concetti di base del design orientato agli oggetti, specialmente quando abbiamo

139
00:12:02,470 --> 00:12:06,670
preso tempo per comprendere i concetti da un punto di vista concettuale.

140
00:12:07,080 --> 00:12:12,370
E ora siamo lasciati a bocca aperta e chiedendo il progetto Verby metterà praticamente in pratica

141
00:12:12,430 --> 00:12:14,200
tutto ciò che abbiamo imparato.

142
00:12:14,320 --> 00:12:21,050
Tutti possiamo vedere che abbiamo praticamente completato tutti i concetti fondamentali che legano le buone serie di base

143
00:12:21,050 --> 00:12:26,350
del linguaggio nella parte 1 e i concetti orientati agli oggetti della Parte 2.

144
00:12:26,360 --> 00:12:31,920
Di seguito vedremo come possiamo già utilizzare Eclipse e quindi inizieremo con il progetto.

145
00:12:31,940 --> 00:12:36,710
Quindi grazie per l'ascolto e ti vedrò nel prossimo capitolo su Idol quindi felice codifica.
