1
00:00:07,270 --> 00:00:09,390
Ciao, questo è deciso a fare.

2
00:00:09,400 --> 00:00:10,720
E bentornato.

3
00:00:10,720 --> 00:00:14,260
Ora è il momento di imparare a sufficienza che vengono introdotti in Jollof.

4
00:00:14,680 --> 00:00:19,980
È possibile richiamare le classi di esportazione costanti che abbiamo creato nel nostro progetto e queste classi

5
00:00:19,990 --> 00:00:22,320
stavano esportando costanti di tempo di compilazione.

6
00:00:22,420 --> 00:00:29,690
Ad esempio, c'era un libro di classe di genere Vitex ittero sportivo come la fantascienza e così via.

7
00:00:29,710 --> 00:00:31,270
Come Constance.

8
00:00:31,270 --> 00:00:37,170
Allo stesso modo abbiamo avuto anche altre classi come il genere di genere film genere e così via.

9
00:00:37,180 --> 00:00:43,690
Quindi queste classi di esportazione costanti sono state create per raggruppare un insieme di costanti come il genere specifico

10
00:00:43,690 --> 00:00:47,290
per i libri sul genere specifico per i film.

11
00:00:47,560 --> 00:00:50,930
Ma ci sono alcune gravi carenze nella creazione di tali concetti.

12
00:00:51,100 --> 00:00:53,690
Ed è qui che interin entra in gioco.

13
00:00:53,710 --> 00:00:55,790
Quindi vediamo cosa sono le carenze.

14
00:00:56,050 --> 00:00:58,880
E poi lo faremo dove i designer di lingue hanno avuto.

15
00:00:59,080 --> 00:01:02,620
E vedremo come possiamo affrontare queste carenze.

16
00:01:02,620 --> 00:01:08,170
Quindi, se pensiamo come un progettista di linguaggi OK, introdurremmo anche dei nemici e li inseriremo

17
00:01:08,170 --> 00:01:12,250
in alcuni dei suoi dettagli o saranno parte della seguente lezione.

18
00:01:14,000 --> 00:01:19,190
Consideriamo questo genere classico che è una classe di esportazione costante e sta definendo due gruppi

19
00:01:19,190 --> 00:01:20,200
di costanti.

20
00:01:20,480 --> 00:01:22,150
Il primo ciclo riguarda il film genere.

21
00:01:22,190 --> 00:01:24,600
Bene, secondo, parla del libro Jhanvi.

22
00:01:24,740 --> 00:01:29,290
Non dobbiamo istanziare una classe di esportazione così costante che ha solo costanti.

23
00:01:29,510 --> 00:01:33,170
Quindi abbiamo un costruttore privato per prevenire l'istanziazione.

24
00:01:33,170 --> 00:01:39,130
Non questo tipo di modello che esporta solo in costanti viene definito come fine nei dati.

25
00:01:39,390 --> 00:01:41,190
Ok Delphi improprio.

26
00:01:41,240 --> 00:01:47,510
Questo era uno schema standard per esportare le costanti e abbiamo anche seguito questo badan nel nostro progetto.

27
00:01:47,750 --> 00:01:50,960
E come accennato in precedenza ha diverse carenze.

28
00:01:52,410 --> 00:01:55,770
La prima efficienza riguarda la mancanza di sicurezza.

29
00:01:55,820 --> 00:02:02,120
Ad esempio consideriamo questa classe stessa e diciamo che c'è anche un dilettante che si aspetta che il sottotitolo

30
00:02:02,210 --> 00:02:05,620
del film sottintenda il genere horror horror come input.

31
00:02:05,990 --> 00:02:12,470
Quindi il metodo avrebbe una variabile di tipo e mi sarei aspettato che il codice client avrebbe passato a zero

32
00:02:12,470 --> 00:02:18,150
un valore pari a zero come il valore per il film sottolineatura Jungi sottolineatura più difficile.

33
00:02:18,590 --> 00:02:24,600
Tuttavia, il codice cliente per errore potrebbe superare un sottotesto di Johnny underskirt.

34
00:02:24,770 --> 00:02:29,990
Quindi qualsiasi tipo di film sottolinei il genere e il buon horror book sottintende il genere horror della sottogonna

35
00:02:29,990 --> 00:02:33,650
che sta superando che ha un valore che Lebon non è zero.

36
00:02:33,900 --> 00:02:37,540
In tal modo, l'errore persiste e potrebbe causare un errore grave.

37
00:02:39,070 --> 00:02:42,730
Prossime deficienze che Courtice combatte qui.

38
00:02:42,760 --> 00:02:48,970
Queste costanti sono costanti di tempo di compilazione quindi, ovunque vengano utilizzate nel codice client, i loro valori

39
00:02:48,970 --> 00:02:50,110
vengono copiati correttamente.

40
00:02:50,110 --> 00:02:56,500
Sappiamo che i valori ottengono l'hardware ma se uno qualsiasi di questi valori viene modificato qui non verrà riflesso

41
00:02:56,500 --> 00:03:00,850
nel codice client a meno che il codice cliente non venga ricompilato.

42
00:03:01,150 --> 00:03:05,950
Quindi, se il codice cliente non viene ricompilato, utilizzerà valori obsoleti.

43
00:03:06,060 --> 00:03:07,370
OK e non va bene.

44
00:03:09,160 --> 00:03:14,560
La terza mancanza è che qui non esiste una protezione per lo spazio dei nomi, al fine di distinguere il

45
00:03:14,560 --> 00:03:16,640
genere horror nel film e nel libro.

46
00:03:16,840 --> 00:03:21,820
Stiamo usando prefissi come il film di sottolineatura Jondrette e il libro sulla scuola Jondrette che è

47
00:03:21,820 --> 00:03:22,710
un po 'maldestro.

48
00:03:24,540 --> 00:03:29,700
Avanti se si desidera stampare il nome di una costante particolare come dire un sottotitolo del film sottotitoli

49
00:03:29,700 --> 00:03:32,230
genere horror allora non sarebbe facile da fare.

50
00:03:33,650 --> 00:03:39,320
Analogamente, se si desidera eseguire un'iterazione delle costanti in un determinato gruppo o optare per una

51
00:03:39,320 --> 00:03:45,430
particolare dimensione di gruppo come il numero di generi all'interno del dominio del film, potrebbe non essere facilmente possibile.

52
00:03:45,740 --> 00:03:53,920
Dovremmo scrivere qualche breve riflessione per correggere le carenze che abbiamo appena visto dove un designer di

53
00:03:53,910 --> 00:03:57,710
linguaggi è caldo su una carta sottile.

54
00:03:57,880 --> 00:04:04,830
Quindi, invece di avere tutte le costanti in una classe genre, possiamo mantenere classi di esportazione costanti separate.

55
00:04:04,870 --> 00:04:09,200
Cosa non siamo d'accordo sul libro genere che è quello che abbiamo fatto nel nostro progetto.

56
00:04:09,400 --> 00:04:12,840
Con ciò possiamo vedere come potrebbero essere nomi leggibili come hata.

57
00:04:13,340 --> 00:04:16,280
Ciò che spunta dal problema dello spazio dei nomi.

58
00:04:16,360 --> 00:04:18,700
Non affronta il problema di sicurezza del tipo.

59
00:04:19,690 --> 00:04:26,650
Ad esempio, il libro su lettura o Katar potrebbe ancora essere passato dove il genere film non è più difficile.

60
00:04:27,010 --> 00:04:28,580
Quindi abbiamo bisogno di qualcosa di meglio.

61
00:04:30,110 --> 00:04:35,400
Sappi che un'osservazione che possiamo fare è che ogni costante è semplicemente un tipo di Donard.

62
00:04:35,690 --> 00:04:40,630
Per esempio, il libro di Hotter Jondrette è semplicemente un libro fuori tema.

63
00:04:41,180 --> 00:04:47,690
Cioè può essere un'istanza del libro di Jondrette, ma con più difficoltà visto che è rimasta sullo stato

64
00:04:47,690 --> 00:04:49,730
è rappresentata da qualche variabile.

65
00:04:49,960 --> 00:04:54,230
Allo stesso modo la biografia è anche un tipo di genere di libri.

66
00:04:54,700 --> 00:05:00,790
Quindi invece di rappresentare queste costanti come primitive possiamo rappresentarle come esempi di genere di

67
00:05:00,780 --> 00:05:01,360
libri.

68
00:05:03,310 --> 00:05:05,110
Ed ecco come è fatto.

69
00:05:05,110 --> 00:05:10,740
Abbiamo ancora il libro Dark Glass ma la biografia e l'orrore di Constance non ci sono più.

70
00:05:10,750 --> 00:05:18,460
E i riferimenti all'oggetto di Constance Baader di tipo boobed genere e il loro stato catturato attraverso le variabili significano e

71
00:05:18,550 --> 00:05:21,870
il nome Adina è il nome del genere.

72
00:05:21,920 --> 00:05:29,110
Mentre Aretino è la posizione del contenuto all'interno del gruppo di costanti definito in quella classe, il nome della biografia

73
00:05:29,170 --> 00:05:31,430
di Sofort è la biografia.

74
00:05:31,510 --> 00:05:35,790
L'ordinale è zero perché il suo nome è più difficile.

75
00:05:35,890 --> 00:05:40,240
Bene ordinale è uno con questo tipo di design.

76
00:05:40,330 --> 00:05:48,110
Non possiamo più assegnare un libro Jondrette a un genere cinematografico, quindi nessun problema di sicurezza del tipo.

77
00:05:48,290 --> 00:05:52,660
Anche la Corte non è fragile dato che non abbiamo più costanti di tempo per la compilazione.

78
00:05:54,510 --> 00:06:00,620
Non l'unico problema con questo design è che scrivere una classe di esportazione così costante è ingombrante.

79
00:06:00,640 --> 00:06:02,870
Va bene sembra complicato.

80
00:06:03,090 --> 00:06:06,200
Quindi i progettisti di linguaggi volevano renderlo più semplice.

81
00:06:07,990 --> 00:06:15,090
Firmato un file che hanno trovato in case che hanno una rappresentazione più semplice, così possiamo presentare la nostra classe

82
00:06:15,090 --> 00:06:21,550
di Bob genré come un enim in questo modo che, come puoi vedere, è molto più leggibile.

83
00:06:21,570 --> 00:06:27,900
Ha una parola chiave riservata enum seguita dal nome di ENM, che è seguita dal corpo di Inam che

84
00:06:27,900 --> 00:06:30,110
inizia alla fine con parentesi graffe.

85
00:06:30,270 --> 00:06:36,540
Proprio come nel caso di una classe o di un'interfaccia all'interno del corpo abbiamo

86
00:06:36,550 --> 00:06:42,760
le costanti separate da virgola, le costanti sono costanti ENM e Jondrette.

87
00:06:42,780 --> 00:06:44,400
È abbastanza.

88
00:06:44,940 --> 00:06:47,700
Quindi i progettisti di linguaggi lo hanno reso semplice.

89
00:06:48,060 --> 00:06:53,820
Ma una volta completato, questo ENM sarà tradotto nel bus normale.

90
00:06:53,850 --> 00:06:59,970
Quindi nel bytecode abbiamo solo questo che è quasi identico alla classe genré del libro che abbiamo visto

91
00:06:59,970 --> 00:07:01,400
nella diapositiva precedente.

92
00:07:01,700 --> 00:07:10,920
La classe è finale che implica che un enum non è estendibile, quindi non possiamo aggiungere nuove

93
00:07:10,920 --> 00:07:13,650
costanti enum sottoclasse l'enum.

94
00:07:13,660 --> 00:07:20,750
Il concetto di è anche privato come prima, quindi enim è un non intangibile e l'importante è che

95
00:07:20,750 --> 00:07:28,120
questa classe di traduttore estenda una classe chiamata ENM che è da Jawa non come il pacchetto under-class

96
00:07:28,670 --> 00:07:34,310
include metodi che possono essere richiamati su una costante enum nella prossima lezione.

97
00:07:34,330 --> 00:07:38,620
Esploreranno la classe enum ei suoi metodi per leggerli tutti.

98
00:07:38,690 --> 00:07:43,550
Puoi anche notare i metodi statici che il compilatore ha inserito.

99
00:07:43,580 --> 00:07:47,250
Questi non erano presenti nella nostra definizione di classe dalla riga precedente.

100
00:07:47,660 --> 00:07:53,810
I valori che sono scritti sull'idea in costanti M nell'ordine in cui sono dichiarati.

101
00:07:54,220 --> 00:08:01,430
E questo sarà utile per iterare le costanti di ordine stanno trovando il numero di costanti dichiarato come menzionato

102
00:08:01,430 --> 00:08:03,350
all'inizio di questa lezione.

103
00:08:03,350 --> 00:08:11,040
Non sarebbe molto facile iterare sulle costanti se usassimo il fine in questo e il valore di questo qui sarebbe

104
00:08:11,080 --> 00:08:18,370
letto su una particolare costante enum data il suo nome così possiamo vedere che il tipo restituito qui

105
00:08:18,460 --> 00:08:20,590
è quello in qualche tipo.

106
00:08:20,720 --> 00:08:27,920
Quindi, come possiamo vedere e ENM ha una rappresentazione molto semplice sotto esso è anche potente in quanto affronta

107
00:08:27,920 --> 00:08:31,010
le loro carenze e che non è incompatibile.

108
00:08:31,260 --> 00:08:31,910
OK.

109
00:08:31,950 --> 00:08:36,200
E un ENM può anche essere più sofisticato, come vedremo in seguito.

110
00:08:36,290 --> 00:08:38,080
Che lo renderà ancora più potente.

111
00:08:40,020 --> 00:08:46,320
Ed ecco un esempio di un metodo in cui la variabile John Gray è off book non risponde.

112
00:08:47,130 --> 00:08:49,630
Ed ecco come questo metodo può essere invocato.

113
00:08:49,680 --> 00:08:55,140
L'argomento per John Gray è il genere horror di enum constant book.

114
00:08:55,310 --> 00:09:01,830
Ancora una volta questo ci dà il vantaggio dei tipi di tempo di compilazione se B come sono solo le costanti che sono definite nel

115
00:09:02,040 --> 00:09:02,460
libro.

116
00:09:02,500 --> 00:09:04,960
Lavanderia ci possono essere passati argomenti qui.

117
00:09:06,770 --> 00:09:12,700
Quindi Inam è essenzialmente una classe che definisce costanti fisse.

118
00:09:12,780 --> 00:09:14,260
OK, tienilo a mente.

119
00:09:14,270 --> 00:09:19,640
È semplicemente una classe sotto le costanti sono oggetti in piena regola.

120
00:09:19,750 --> 00:09:26,280
Cioè sono istanze di tipo ENM e dal momento che sono costanti sono statiche e definitive.

121
00:09:26,480 --> 00:09:30,730
E così abbiamo le stesse convenzioni di denominazione delle costanti regolari.

122
00:09:30,760 --> 00:09:38,050
Ovvero tutte le maiuscole con underscore. Le costanti ENM vengono anche chiamate elementi del tipo o membri

123
00:09:38,050 --> 00:09:39,180
del tipo.

124
00:09:39,210 --> 00:09:46,530
E ti sei fatto il tipo non che JVM annota alcun nome quando viene usato per la prima volta.

125
00:09:47,930 --> 00:09:54,200
Finalmente ecco un Daleiden efficace e completo sui nomi in cui è usato.

126
00:09:54,260 --> 00:09:58,670
Invece delle costanti finali, ecco cosa abbiamo discusso in questa lezione.

127
00:09:58,670 --> 00:10:04,940
Le carenze della fine dell'impatto e il modo in cui i nomi le affrontano sono anche discusse in questo articolo.

128
00:10:04,940 --> 00:10:10,010
Descrive anche molti altri aspetti illeggibili di Biddy in alcuni di essi in questo capitolo.

129
00:10:10,010 --> 00:10:18,090
Quindi, solo per riassumere enim pipe o chiunque al tipo è semplicemente una classe che definisce un insieme fisso di costanti.

130
00:10:18,200 --> 00:10:23,620
Ha una rappresentazione semplice e affronta abbastanza le carenze in esso.

131
00:10:23,900 --> 00:10:24,290
Grazie.
