Sobes.tech
Junior — Middle

Wyjaśnij pojęcie Enum Class i jego różnicę od zwykłych enumeracji

sobes.tech AI

Odpowiedź od AI

W Androidzie (i ogólnie w Java) enum class to klasa wyliczeniowa, która reprezentuje zbiór stałych z możliwością dodawania pól, metod i konstruktorów.

Różnice w porównaniu do zwykłych wyliczeń (np. w C lub prostych stałych):

  • Bezpieczeństwo typów — enum jest pełnoprawną klasą, a zmienna typu enum może przyjąć tylko zdefiniowane wartości.
  • Możliwość dodawania zachowania — można definiować metody i pola wewnątrz enum.
  • Użycie w switch — enum jest wygodny do użycia w instrukcjach wyboru.

Przykład enum w 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;
    }
}

Tak więc, enum class to rozszerzony sposób definiowania stałego zestawu stałych z dodatkowymi funkcjami, w odróżnieniu od prostych wyliczeń, które mogą być po prostu zbiorem liczb lub łańcuchów bez logiki.