int, а подмножество проекции начинается с нуля. Но при желании можно изменить интервал представления и сам базовый класс. Естественно, на базовый класс накладывается ограничение. Он должен быть одним из встроенных классов, задающих счетное множество (int, byte, long, другие счетные типы). Единственное исключение из этого правила - нельзя выбирать класс char в качестве базового класса. Как правило, принятый по умолчанию выбор базового класса и его подмножества вполне приемлем в большинстве ситуаций. Приведу примеры объявлений классов-перечислений: public enum Profession{teacher, engineer, businessman}; public enum MyColors {red, blue, yellow, black, white}; public enum TwoColors {black, white}; public enum Rainbow {красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый}; public enum Sex: byte {man=1, woman}; public enum Days:long {Sun,Mon,Tue,Wed,Thu, Fri, Sat}; Вот несколько моментов, на которые следует обратить внимание при объявлении перечислений: - как и другие классы, перечисления могут быть объявлены непосредственно в пространстве имен проекта или могут быть вложены в описание класса. Последний вариант часто применяется, когда перечисление используется в одном классе и имеет атрибут доступа private;
- константы разных перечислений могут совпадать, как в перечислениях MyColors и TwoColors. Имя константы всегда уточняется именем перечисления;
- константы могут задаваться словами русского языка, как в перечислении Rainbow;
- разрешается задавать базовый класс перечисления. Для перечисления Days базовым классом задан класс long;
- разрешается задавать не только базовый класс, но и указывать начальный элемент подмножества, на которое проецируется множество значений перечисления. Для перечисления Sex в качестве базового класса выбран класс byte
|