Ciao, questo è deciso a fare.
E bentornato.
Ora è il momento di imparare a sufficienza che vengono introdotti in Jollof.
È possibile richiamare le classi di esportazione costanti che abbiamo creato nel nostro progetto e queste classi
stavano esportando costanti di tempo di compilazione.
Ad esempio, c'era un libro di classe di genere Vitex ittero sportivo come la fantascienza e così via.
Come Constance.
Allo stesso modo abbiamo avuto anche altre classi come il genere di genere film genere e così via.
Quindi queste classi di esportazione costanti sono state create per raggruppare un insieme di costanti come il genere specifico
per i libri sul genere specifico per i film.
Ma ci sono alcune gravi carenze nella creazione di tali concetti.
Ed è qui che interin entra in gioco.
Quindi vediamo cosa sono le carenze.
E poi lo faremo dove i designer di lingue hanno avuto.
E vedremo come possiamo affrontare queste carenze.
Quindi, se pensiamo come un progettista di linguaggi OK, introdurremmo anche dei nemici e li inseriremo
in alcuni dei suoi dettagli o saranno parte della seguente lezione.
Consideriamo questo genere classico che è una classe di esportazione costante e sta definendo due gruppi
di costanti.
Il primo ciclo riguarda il film genere.
Bene, secondo, parla del libro Jhanvi.
Non dobbiamo istanziare una classe di esportazione così costante che ha solo costanti.
Quindi abbiamo un costruttore privato per prevenire l'istanziazione.
Non questo tipo di modello che esporta solo in costanti viene definito come fine nei dati.
Ok Delphi improprio.
Questo era uno schema standard per esportare le costanti e abbiamo anche seguito questo badan nel nostro progetto.
E come accennato in precedenza ha diverse carenze.
La prima efficienza riguarda la mancanza di sicurezza.
Ad esempio consideriamo questa classe stessa e diciamo che c'è anche un dilettante che si aspetta che il sottotitolo
del film sottintenda il genere horror horror come input.
Quindi il metodo avrebbe una variabile di tipo e mi sarei aspettato che il codice client avrebbe passato a zero
un valore pari a zero come il valore per il film sottolineatura Jungi sottolineatura più difficile.
Tuttavia, il codice cliente per errore potrebbe superare un sottotesto di Johnny underskirt.
Quindi qualsiasi tipo di film sottolinei il genere e il buon horror book sottintende il genere horror della sottogonna
che sta superando che ha un valore che Lebon non è zero.
In tal modo, l'errore persiste e potrebbe causare un errore grave.
Prossime deficienze che Courtice combatte qui.
Queste costanti sono costanti di tempo di compilazione quindi, ovunque vengano utilizzate nel codice client, i loro valori
vengono copiati correttamente.
Sappiamo che i valori ottengono l'hardware ma se uno qualsiasi di questi valori viene modificato qui non verrà riflesso
nel codice client a meno che il codice cliente non venga ricompilato.
Quindi, se il codice cliente non viene ricompilato, utilizzerà valori obsoleti.
OK e non va bene.
La terza mancanza è che qui non esiste una protezione per lo spazio dei nomi, al fine di distinguere il
genere horror nel film e nel libro.
Stiamo usando prefissi come il film di sottolineatura Jondrette e il libro sulla scuola Jondrette che è
un po 'maldestro.
Avanti se si desidera stampare il nome di una costante particolare come dire un sottotitolo del film sottotitoli
genere horror allora non sarebbe facile da fare.
Analogamente, se si desidera eseguire un'iterazione delle costanti in un determinato gruppo o optare per una
particolare dimensione di gruppo come il numero di generi all'interno del dominio del film, potrebbe non essere facilmente possibile.
Dovremmo scrivere qualche breve riflessione per correggere le carenze che abbiamo appena visto dove un designer di
linguaggi è caldo su una carta sottile.
Quindi, invece di avere tutte le costanti in una classe genre, possiamo mantenere classi di esportazione costanti separate.
Cosa non siamo d'accordo sul libro genere che è quello che abbiamo fatto nel nostro progetto.
Con ciò possiamo vedere come potrebbero essere nomi leggibili come hata.
Ciò che spunta dal problema dello spazio dei nomi.
Non affronta il problema di sicurezza del tipo.
Ad esempio, il libro su lettura o Katar potrebbe ancora essere passato dove il genere film non è più difficile.
Quindi abbiamo bisogno di qualcosa di meglio.
Sappi che un'osservazione che possiamo fare è che ogni costante è semplicemente un tipo di Donard.
Per esempio, il libro di Hotter Jondrette è semplicemente un libro fuori tema.
Cioè può essere un'istanza del libro di Jondrette, ma con più difficoltà visto che è rimasta sullo stato
è rappresentata da qualche variabile.
Allo stesso modo la biografia è anche un tipo di genere di libri.
Quindi invece di rappresentare queste costanti come primitive possiamo rappresentarle come esempi di genere di
libri.
Ed ecco come è fatto.
Abbiamo ancora il libro Dark Glass ma la biografia e l'orrore di Constance non ci sono più.
E i riferimenti all'oggetto di Constance Baader di tipo boobed genere e il loro stato catturato attraverso le variabili significano e
il nome Adina è il nome del genere.
Mentre Aretino è la posizione del contenuto all'interno del gruppo di costanti definito in quella classe, il nome della biografia
di Sofort è la biografia.
L'ordinale è zero perché il suo nome è più difficile.
Bene ordinale è uno con questo tipo di design.
Non possiamo più assegnare un libro Jondrette a un genere cinematografico, quindi nessun problema di sicurezza del tipo.
Anche la Corte non è fragile dato che non abbiamo più costanti di tempo per la compilazione.
Non l'unico problema con questo design è che scrivere una classe di esportazione così costante è ingombrante.
Va bene sembra complicato.
Quindi i progettisti di linguaggi volevano renderlo più semplice.
Firmato un file che hanno trovato in case che hanno una rappresentazione più semplice, così possiamo presentare la nostra classe
di Bob genré come un enim in questo modo che, come puoi vedere, è molto più leggibile.
Ha una parola chiave riservata enum seguita dal nome di ENM, che è seguita dal corpo di Inam che
inizia alla fine con parentesi graffe.
Proprio come nel caso di una classe o di un'interfaccia all'interno del corpo abbiamo
le costanti separate da virgola, le costanti sono costanti ENM e Jondrette.
È abbastanza.
Quindi i progettisti di linguaggi lo hanno reso semplice.
Ma una volta completato, questo ENM sarà tradotto nel bus normale.
Quindi nel bytecode abbiamo solo questo che è quasi identico alla classe genré del libro che abbiamo visto
nella diapositiva precedente.
La classe è finale che implica che un enum non è estendibile, quindi non possiamo aggiungere nuove
costanti enum sottoclasse l'enum.
Il concetto di è anche privato come prima, quindi enim è un non intangibile e l'importante è che
questa classe di traduttore estenda una classe chiamata ENM che è da Jawa non come il pacchetto under-class
include metodi che possono essere richiamati su una costante enum nella prossima lezione.
Esploreranno la classe enum ei suoi metodi per leggerli tutti.
Puoi anche notare i metodi statici che il compilatore ha inserito.
Questi non erano presenti nella nostra definizione di classe dalla riga precedente.
I valori che sono scritti sull'idea in costanti M nell'ordine in cui sono dichiarati.
E questo sarà utile per iterare le costanti di ordine stanno trovando il numero di costanti dichiarato come menzionato
all'inizio di questa lezione.
Non sarebbe molto facile iterare sulle costanti se usassimo il fine in questo e il valore di questo qui sarebbe
letto su una particolare costante enum data il suo nome così possiamo vedere che il tipo restituito qui
è quello in qualche tipo.
Quindi, come possiamo vedere e ENM ha una rappresentazione molto semplice sotto esso è anche potente in quanto affronta
le loro carenze e che non è incompatibile.
OK.
E un ENM può anche essere più sofisticato, come vedremo in seguito.
Che lo renderà ancora più potente.
Ed ecco un esempio di un metodo in cui la variabile John Gray è off book non risponde.
Ed ecco come questo metodo può essere invocato.
L'argomento per John Gray è il genere horror di enum constant book.
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
libro.
Lavanderia ci possono essere passati argomenti qui.
Quindi Inam è essenzialmente una classe che definisce costanti fisse.
OK, tienilo a mente.
È semplicemente una classe sotto le costanti sono oggetti in piena regola.
Cioè sono istanze di tipo ENM e dal momento che sono costanti sono statiche e definitive.
E così abbiamo le stesse convenzioni di denominazione delle costanti regolari.
Ovvero tutte le maiuscole con underscore. Le costanti ENM vengono anche chiamate elementi del tipo o membri
del tipo.
E ti sei fatto il tipo non che JVM annota alcun nome quando viene usato per la prima volta.
Finalmente ecco un Daleiden efficace e completo sui nomi in cui è usato.
Invece delle costanti finali, ecco cosa abbiamo discusso in questa lezione.
Le carenze della fine dell'impatto e il modo in cui i nomi le affrontano sono anche discusse in questo articolo.
Descrive anche molti altri aspetti illeggibili di Biddy in alcuni di essi in questo capitolo.
Quindi, solo per riassumere enim pipe o chiunque al tipo è semplicemente una classe che definisce un insieme fisso di costanti.
Ha una rappresentazione semplice e affronta abbastanza le carenze in esso.
Grazie.