2011-01-28 13 views
15
class Coffee{ 
    enum CoffeeSize{BIG,HUGE,OVERWHELMING} 
    CoffeeSize size; 
    } 

class CoffeeTest{ 
    public static void main(String[] args) 
    { 
     Coffee drink=new Coffee(); 
     drink.size=Coffee.CoffeeSize.BIG; 
    } 
} 

Coffee.CoffeeSize.BIG: puedo obtener CoffeeSize simplemente usando el nombre de clase Coffee. ¿Estoy en lo correcto cuando creo que el tipo enum es implícitamente estático?¿Los tipos de enumeración declarados en una clase son implícitamente estáticos?

+2

Cuando piensas en qué representan las enums y cómo se supone que deben usarse, debes admitir que solo pueden ser estáticas. – biziclop

+0

Se reformuló esto para convertirlo en una pregunta –

+0

Parece que nos perdimos la misma pregunta con la misma respuesta en la autoverificación del capítulo 1 :( Después de la revisión, esto debería haber sido obvio teniendo en cuenta que no se pueden crear instancias .. – Whired

Respuesta

19

Sí, lo es. La especificación del lenguaje incluso lo dice. Desde JLS section 8.9 (enums):

Los tipos de enum anidados son implícitamente estáticos. Se permite declarar explícitamente que un tipo de enumeración anidado sea estático.

+0

+ 1 Pero solo si finalmente obtiene la referencia :) – biziclop

Cuestiones relacionadas