Hirdetés

Új hozzászólás Aktív témák

  • robisz

    senior tag

    válasz loszerafin #772 üzenetére

    Szia!

    Az enum típusra úgy érdemes gondolni mint egy sima osztályra.
    Annyi a különbség, hogy ebből az osztályból közvetlenül sosem hozunk
    létre példányokat, csak az előre definiált ''konstansokat'' használhatjuk.

    A példában tehát létrejön egy Day ''osztály'' és annak a 7 példánya (SUNDAY,
    MONDAY, stb...)

    Legegyszerűbb formában tehát az enum így nézne ki:

    enum Day {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY;
    }


    Mint minden sima osztályban az enum-ban is írhatunk metódusokat, tárolhatunk
    egyéb adatokat.
    Alapból a toString() metódus a konstans nevével megegyező string-et ad vissza,
    tehát a System.out.println(Day.MONDAY) eredménye ''MONDAY''.

    A te példádban az enum-ban tárolunk egy dayname string-et is. Itt jön be
    a képbe a konstruktor szerepe. Igaz te kivülről sosem hivod közvetlenül a
    konstruktor-t, de a SUNDAY(''Sunday'') sor az enumban valójában egy konstruktor
    hívást jelent, azaz a ''Sunday'' string eltárolodik a dayname változóba.

    A toString metódust is felüldefiniálódik a te példádban, mégpedig úgy, hogy ezt a
    dayname String-et adja vissza. Igy a System.out.println(Day.MONDAY) eredménye
    ''Monday'' lesz ''MONDAY'' helyett.

    Azt hogy milyen adatokat tárolsz az enum-ben és milyen konstruktorokat írsz
    te döntöd el, csak a konstansok felsorolásánal (SUNDAY, MONDAY stb) a megfelelő
    számú és típusú paramétert kell átadni.


    [Szerkesztve]

Új hozzászólás Aktív témák