Co to jest enum? – pytanie rekrutacyjne

Share on facebook
Share on twitter
Share on linkedin
Co to jest enum w Javie?

Co to jest enum?

Enum jest typem wyliczeniowy, który służy do przechowywania wartości stałych. Przykładem wartości jakie możemy tam przechowywać są:

  • planety układy słonecznego,
  • jednostki miar,
  • dyscypliny sportu,
  • kolory,
  • możliwości płatności online w sklepie internetowym,
  • rodzaj publikacji na blogu np. artykuł, ogłoszenie lub krótki wpis.

Do deklaracji typu wyliczeniowego w Javie służy słowo kluczowe enum. Deklaracja przykładowego enuma dla kolorów wygląda następująco:

enum Colors {
    WHITE, BLACK
}

W przeciwieństwie do innych języków, typ wyliczeniowy w Javie jest bardzo dobrze rozbudowany. W Javie enum na bazuje obiektowości, dzięki czemu tworzymy klasę (tzw. enum type), i mamy do dyspozycji predefiniowane metody oraz mamy możliwość tworzenia własnych metod dla każdego enuma z osobna.

public enum Colors {
    WHITE("#ffffff"), BLACK("#000000");

    private final String hex;

    Colors(String hex) {
        this.hex = hex;
    }

    public String getHex() {
        return hex;
    }

    public static void main(String[] args) {
        System.out.println(Colors.WHITE.getHex());
    }
}

W naszym przypadku enum type to Colors. Jak można zauważyć, enum zachowuje się (prawie) jak zwykła klasa. Można tworzyć w niej własne metody oraz pola.

 

Jeśli chcesz się dowiedzieć więcej na temat enuma w Javie, zachęcam do lektury następujących materiałów:

Kamil Klimek

Kamil Klimek

Pierwszy kalkulator napisany w języku Pascal w podstawówce. Później miałem trochę przygód z frontendem oraz PHP, na studiach poznałem C++ oraz Jave. Obecnie prawie 3 letnie doświadczenie jako Java full stack develop. Blog jest miejscem, dzięki któremu mogę się dzielić wiedzą i pomagać innym w nauce programowania.
Subscribe
Powiadom o
guest
3 komentarzy
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Tomasz
Tomasz
27 dni temu

Fajny artykuł dużo przydatnej wiedzy, dziękuję.

Michal
Michal
26 dni temu

No ok, rozumiem. Ale czym się różni od innych typów po za obiektowościa? Ceny możemy przechowywać we flotach, numery planet w intach itd.

3
0
Would love your thoughts, please comment.x
()
x