Every enum has an automatically generated values() method that returns all the enum values in an array. You won't find it in class Enum<E extends Enum<E>> - the compiler just automatically generates it. Note that the values() method of an enum type is static.
Is X.values() an array of the enum X? Yes.
More info:
Java 5.0 Language Features - Typesafe Enums