Sobes.tech
Junior — Middle

Објасните концепт Enum Class и његову разлику од обичних избројавања

sobes.tech АИ

Одговор од АИ

U Androidu (i opšte u Javi) enum class je klasa enumeracije koja predstavlja skup konstanti sa mogućnošću dodavanja polja, metoda i konstruktora.

Razlike u odnosu na obične enumeracije (npr. u C ili jednostavne konstante):

  • Tip sigurnosti — enum je potpuna klasa, i promenljiva tipa enum može da prihvati samo definisane vrednosti.
  • Mogućnost dodavanja ponašanja — moguće je definisati metode i polja unutar enum-a.
  • Korišćenje u switch — enum je zgodan za korišćenje u izborima.

Primer enum u Java/Android:

public enum Status {
    NEW(0),
    IN_PROGRESS(1),
    DONE(2);

    private int code;

    Status(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }
}

Dakle, enum class je prošireni način definisanja fiksnog skupa konstanti sa dodatnom funkcionalnošću, za razliku od jednostavnih enumeracija koje mogu biti samo skup brojeva ili stringova bez logike.