Forum » Programiranje » Java enum
Java enum
zigaliro ::
Pozdravljeni,
Mene pa zanima če mi lahko nekdo razloži kaj je to Enum v Javi. Kolikor jaz razumem je Enum posebne vrste razred, v katerem lahko napišemo konstante(primer imena dnevov v tednu) in jih kasneje lahko dostopamo do njih.
A mi lahko kdo bolj podrobneje to razloži?
Mene pa zanima če mi lahko nekdo razloži kaj je to Enum v Javi. Kolikor jaz razumem je Enum posebne vrste razred, v katerem lahko napišemo konstante(primer imena dnevov v tednu) in jih kasneje lahko dostopamo do njih.
A mi lahko kdo bolj podrobneje to razloži?
jype ::
To je tip spremenljivke, ki je interno zapisan kot celo število, prevajalnik pa ga omejuje na vnaprej določene vrednosti.
shadeX ::
Enum - Enumeration - kar pomeni štetje, številčenje, itd.
En primer tega je spodnji prikaz kode (napisan v C#). Tukaj uporabnik lahko izbere ali bo imel Zvok na ON, OFF, samo Zvočne efekte, ali samo glasbo.
En primer tega je spodnji prikaz kode (napisan v C#). Tukaj uporabnik lahko izbere ali bo imel Zvok na ON, OFF, samo Zvočne efekte, ali samo glasbo.
public enum AudioStatus { /// <summary> /// Audio is OFF /// </summary> Off, /// <summary> /// Audio is ON /// </summary> On, /// <summary> /// Effects only /// </summary> Effects, /// <summary> /// Music only /// </summary> Music, }
SimplyMiha ::
Enum je v bistvu oštevilčena etiketa. Imaš več etiket, vsaka je oštevilčena od 0 naprej, na etiketo z markerjem napišeš karkoli ti pade na pamet: Pes, Mačka, Papiga, Osel... Vrednost pa je še vedno številčna, a vsakič ko jo dobiš, na etiketi takoj vidiš, za kaj se gre.
Enum se uporablja za boljšo berljivost in predvsem za "type safety", ki olajša debuganje.
Enum se uporablja za boljšo berljivost in predvsem za "type safety", ki olajša debuganje.
win64 ::
predi ::
Gre za običajen razred, katerega posebnost je to, da so vsi njegovi konstruktorji končni (final) in privatni (private), njihov rezultat pa se vedno shrani v statične končne spremenljivke, ki so del definicije takšnega razreda. Od zunaj razreda torej ne moreš razširiti preko dedovanja, prav tako ne moreš narediti njegove instance. Poleg tega ima razred vedno nekaj built-in končnih metod, ki olajšajo delo pri osnovni namembnosti takšnih razredov - definiciji konstant in njih uporabi.
Na vrhu telesa razreda je vedno z vejico ločen seznam sledečega (pseudo-ABNF): ime-spremenljivke ( klic-konstruktorja )? ( telo-enum-konstante )?
Mislim, da bi moralo biti iz zgornje notacije jasno vse, razen tistega opcijskega "telo-enum-konstante". Javne metode v enum clasu lahko na tem mestu povoziš s svojo implementacijo, če je to potrebno (v stilu anonimnih notranjih razredov). Nič ni narobe, če ima enum kakšno abstraktno metodo, ki jo na ta način implementira vsaka konstanta posebej.
Javanska implementacija enumov je dokaj specifična. Uporabiš jo lahko tudi za implementacijo singleton programskega vzorca, saj je za vsako konstanto zagotovljena natančno ena instanca enuma. Neposredno je podprt tudi v switch izjavah.
Na vrhu telesa razreda je vedno z vejico ločen seznam sledečega (pseudo-ABNF): ime-spremenljivke ( klic-konstruktorja )? ( telo-enum-konstante )?
Mislim, da bi moralo biti iz zgornje notacije jasno vse, razen tistega opcijskega "telo-enum-konstante". Javne metode v enum clasu lahko na tem mestu povoziš s svojo implementacijo, če je to potrebno (v stilu anonimnih notranjih razredov). Nič ni narobe, če ima enum kakšno abstraktno metodo, ki jo na ta način implementira vsaka konstanta posebej.
Javanska implementacija enumov je dokaj specifična. Uporabiš jo lahko tudi za implementacijo singleton programskega vzorca, saj je za vsako konstanto zagotovljena natančno ena instanca enuma. Neposredno je podprt tudi v switch izjavah.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pošljite nam vašo najboljšo kodoOddelek: Programiranje | 2177 (1422) | AndrejO |
» | C# BackgroundWorker Class problemOddelek: Programiranje | 1259 (1215) | hendriks |
» | programiranjeOddelek: Programiranje | 3546 (2106) | Pegaz |
» | [c++] stil kodiranja, informativnoOddelek: Programiranje | 1929 (1745) | CCfly |
» | [ OOP ] Global vs. Not GlobalOddelek: Programiranje | 1241 (1036) | noraguta |