Per què el constructor d'enum és privat?
Per què el constructor d'enum és privat?

Vídeo: Per què el constructor d'enum és privat?

Vídeo: Per què el constructor d'enum és privat?
Vídeo: How To Create Smart Enums in C# With Rich Behavior 2024, De novembre
Anonim

En realitat no es pot tenir un públic constructor enumeració . Necessites això constructor ser privat , perquè enumeracions definir un conjunt finit de valors (per exemple EN_US, EN_UK, FR_FR, FR_BE). Si el constructor si la gent pública podria crear més valors (per exemple, valors no vàlids/no declarats com XX_KK, etc.).

Respecte a això, pot enum tenir un constructor?

Això és perquè enumeració és Java conté valors constants fixos. Per tant, no té sentit tenir-ho públic o protegit constructor ja que no podeu crear una instància de enumeració . A més, tingueu en compte que internament enumeració es converteix a classe com a continuació. Com hem llauna no crear enumeració objectes explícitament per tant nosaltres llauna no invocar constructor enumeració directament.

A més, quina diferència hi ha entre un constructor d'enum i un constructor de classe normal? Per respondre a la pregunta: bàsicament, no n'hi ha diferència entre els dos plantejaments. Malgrat això, enumeració construct us proporciona alguns mètodes de suport addicionals com values(), valueOf(), etc. que haureu d'escriure pel vostre compte amb el classe -amb-privat- constructor enfocament.

A més d'això, quin és el propòsit de les enumeracions?

El enumeració s'utilitza per declarar una llista de constants enteres anomenades. Es pot definir amb el enumeració paraula clau directament dins d'un espai de noms, classe o estructura. El enumeració s'utilitza per donar un nom a cada constant de manera que l'enter constant es pugui referir amb el seu nom. Exemple: enumeració.

Es poden instanciar enumeracions?

enumeracions no admet constructors públics i, per tant, no pot ser-ho instanciat . enumeracions són per quan teniu un conjunt fix de constants relacionades. Exactament una instància voluntat ser creat per a cadascun enumeració constant.

Recomanat: