JLesson 10. Перечисления.

В нашей новой статье, посвященной языку программирования Java, мы рассмотрим такой тип данных, как Перечисления. Это может показаться странным, но для языка Java, начиная с 1.5 его версии, перечисления оказались новшеством. Но ожидания того стоили. Java – это современный язык, использующий парадигму ООП. И поэтому перечисления в язык были введены не просто для галочки, а в виде отдельного типа с целым набором полезных методов. Отсюда сильно расширенный функционал по сравнению с другими языками программирования. Но давайте по порядку. Что же такое вообще перечисление?

Перечисление – это некоторое множество элементов, к которым возможен статический доступ. Давайте разберем на примере. Допустим, мы хотим составить программу, которая бы выводила на экран все месяцы года и количество дней в каждом из них.

Для создания перечисления, как и во многих других языках программирования, используется ключевое слово enum. Наше перечисление можно создать следующим образом:

Давайте выведем на экран какую-нибудь из определенных констант.

В итоге на экране появится имя соответствующей константы, а именно February.

В Java каждая из констант перечисления является типом этого перечисления, поэтому, определив для вашего перечисления конструктор, он будет вызываться для каждой константы. Давайте определим для нашего перечисления Month конструктор, который в качестве единственного параметра будет принимать числовое значение, соответствующее количеству дней в каждом месяце. Делается это следующим образом:

Как мы уже упомянули, при создании каждой константы в перечислении для нее будет вызван конструктор с указанным в скобках аргументом. В перечисление можно добавлять и свои методы или реализовывать интерфейсы. Давайте определим метод, который будет возвращаться количество дней в месяце для каждой из констант:

Теперь выведем результат на экран.

На этом возможности перечислений в языке Java не заканчиваются. Познакомимся еще с несколькими интересными методами. Обратите внимание на форму записи цикла for. Здесь используется его усовершенствованная версия foreach, созданная специально для перебора элементов массива. В этом случае увеличение переменной цикла происходит автоматически. В общем виде данная разновидность цикла выглядит следующим образом:

Метод values().

Данные метод мы использовали в примере выше. С помощью него мы получаем массив, состоящий из всех экземпляров нашего перечисления.

Метод compareTo().

Порядковые номера констант можно сравнивать между собой. Например:

В этом случае на консоль выведется -6. Посчитайте сами, и вы тут же в этом убедитесь.

Метод ordinal().

Возвращает порядковый номер для константы перечисления. Давайте добавим эти данные в вывод:

Результат выполнения:

enum

Также мы могли и определить порядковый номер для конкретной константы. Давайте сделаем это для февраля(February):

В итоге получаем 1, так как элементы перечисления нумеруются, начиная с нуля.

Надеемся, что вам понравилась данная статья, и вы легко усвоили данный материал. Увидимся в следующих уроках! Спасибо за внимание!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *