Enums i inne typy specjalne
- typ wyliczenniowy (enum) - specjalny typ danych reprezentujący skończony zbiór wartości, np. dni tygodnia, kolory, stany itp. Enums są typami bezpiecznymi i mogą mieć pola, metody oraz konstruktory.
- interfejsy funkcyjne - interfejsy z dokładnie jedną metodą abstrakcyjną, używane w wyrażeniach lambda i referencjach do metod.
- klasy anonimowe - klasy definiowane „w locie”, mające dokładnie jedną instancję, często używane do implementacji interfejsów lub klas abstrakcyjnych bez konieczności tworzenia osobnej klasy.
- klasy wewnętrzne - klasy zdefiniowane wewnątrz innej klasy, mogą być statyczne lub niestatyczne, służą do grupowania logicznie powiązanych klas i mają dostęp do członków klasy zewnętrznej.
- klasy lokalne - klasy zdefiniowane wewnątrz metody, dostępne tylko w obrębie tej metody, często używane do implementacji tymczasowych struktur danych lub logiki pomocniczej.
- klasy rekordowe (record) - specjalny typ klasy wprowadzony w Javie 14, służący do przechowywania danych, automatycznie generujący konstruktor, metody
equals(),hashCode()itoString(). - klasy sealed - klasy, które ograniczają, które inne klasy mogą je rozszerzać, wprowadzony w Javie 15, służący do lepszego modelowania hierarchii klas i zapewnienia większej kontroli nad dziedziczeniem.
- klasy final - klasy, które nie mogą być rozszerzane, służą do zapobiegania dziedziczeniu i zapewnienia bezpieczeństwa lub wydajności.
Enum
Enum pozwala definiowac zamkniety zestaw stalych. Oprocz samych wartosci enum moze miec pola, metody i konstruktory.
Przykład Enum:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }