2012-12-20 13 views
8

Mam tu zamieszanie.Czy enum oznacza klasę statyczną?

Jeśli nie mogę zadeklarować klasy jako statycznej, jak działa enum? Wygląda jak klasa statyczna, ponieważ sama tworzy instancję i może być wywołana w dowolnym miejscu. Wygląda na to, że mogę używać enum niemal jak inne statyczne pola .

Czy można bezpiecznie używać enum?

+1

Można utworzyć zagnieżdżoną klasę statyczną – Sam

+1

http://javarevisited.blogspot.in/2011/08/enum-in-java-example-tutorial.html –

Odpowiedz

11

enum typy są automatycznie statyczne. Nie można mieć wyliczenia innego niż static, więc domyślnie jest to static.

JLS 8.9:

zagnieżdżone typy wyliczeniowe są domyślnie statyczne. Dopuszczalne jest jawne zadeklarowanie zagnieżdżonego typu wyliczeniowego jako statycznego.

+1

ahh. Nie wiedziałem o tym. Nawet po 2 latach czasami mam wrażenie, że nie znam javy;) – mtk

0

Każde wyliczenie, które deklarujesz wewnątrz typu wyliczeniowego, jest statycznym elementem twojego typu wyliczeniowego. Typ zmiennych wyliczeniowych to rodzaj wyliczenia, w skrócie są one pisane na własną rękę.

Powiązane problemy