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
3 miesięcy temu

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

Michal
Michal
3 miesięcy 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