Перечисление-это стандартизированная форма параметров, так что вы можете явно заменить нечеткие концепции, которые могут вызвать параметры INT-типа. Перечисление похоже на класс и массив без учета несоответствия типа.
Как новое ключевое слово, представленное Sun, Enum выглядит как особый класс. Он также может иметь свои собственные переменные, определять свои собственные методы и реализовать один или несколько интерфейсов. Когда мы объявляем тип перечисления, мы должны заметить, что тип перечисления имеет некоторые характеристики следующим образом.
1. Он не может иметь публичного конструктора, и это может убедиться, что клиент -код не может создать новый экземпляр Enum.
2. Все значения перечисления являются общедоступными, статичными, окончательными. Обратите внимание, что это только для значений enum. Мы можем определить любые другие неэнамерные переменные любого типа, как определение переменных в обычных классах. Эти переменные можно сделать с любым модификатором, который вы хотите.
3. Enum реализует интерфейс Java.lang.comparable по умолчанию.
4. Enum переопределяет метод ToString, поэтому, если мы называем color.blue.tostring (), мы возвращаем строку «синий» по умолчанию.
5. Enum предоставляет значение значения, который соответствует методу ToString. Значение вызова ("синий") вернет color.blue. Поэтому мы должны обратить на это внимание при переписывании метода ToString. Другими словами, мы должны соответствующим образом переписать значение значения.
6. Enum также предоставляет метод значений, который позволяет легко пройти все значения перечисления.
7. Enum также имеет метод Oridinal, который возвращает порядок значений перечисления в классе Enum. Этот порядок зависит от порядка объявления значения перечисления. Здесь Color.red.ordinal () возвращает 0.
Понимая эти основные функции, давайте посмотрим, как их использовать.
1. Переход всех значений перечисления. Зная, что существуют методы ценностей, мы можем использовать петлю Foreach, чтобы пройти знакомое значение перечисления.
для (Color C: color.values ()) System.out.println («Найти значение:» + c);
2. Определите методы и переменные в Enum. Например, мы можем добавить метод для цвета, чтобы случайным образом вернуть цвет.
публичный переход цвета {красный, зеленый, синий; частное статическое int number = color.values (). длина; public static color getrandomcolor () {long random = System.currentTimeMillis () % число; Switch ((int) случайный) {case 0: return color.red; Случай 1: возврат Color.green; Случай 2: return color.blue; по умолчанию: return color.red; }}}Можно видеть, что нет никакой разницы между определением переменных и методов в типах перечисления и определением методов и переменных в обычных классах. Единственное, что следует отметить, это то, что определения переменной и методов должны быть размещены после всех определений значений перечисления, в противном случае компилятор выдаст ошибку.
3. Переопределить ToString, значение значения
Мы уже знаем, что Enum предоставляет такие методы, как ToString, ValueOf и т. Д. Много раз нам нужно переопределить метод ToString по умолчанию, так как мы делаем перечисление? На самом деле, это ничем не отличается от переоценки метода ToString с обычным классом.
… public String toString () {switch (this) {case red: return "color.red"; Case Green: return "color.green"; Case Blue: return "color.blue"; по умолчанию: вернуть "Unknow Color"; }}….В настоящее время мы видим, что напечатано с предыдущим кодом обхода
Color.red Color.green Color.blue
Вместо
Красный зеленый синий.
Вы можете видеть, что Tostring действительно перезаписывается. Вообще говоря, при перезаписи ToString мы также должны перезаписать метод значения для поддержания их последовательности.
4. Использование конструкторов
Хотя Enum не может иметь общественного конструктора, мы все еще можем определить частный конструктор и использовать его внутри перечисления. Давайте используем цветный пример.
public enum color {red («это красный»), зеленый («это зеленый»), синий («это синий»); частная строка Desc; Color (String desc) {this.desc =} public String getDesc () {return this.desc; }}Здесь мы предоставляем информацию о объяснении для каждого цвета, а затем определяем конструктор, чтобы принять эту информацию об объяснении.
Следует отметить, что конструктор не может быть общедоступным или защищенным, чтобы гарантировать, что конструктор может использоваться только внутри, а клиент -код не может быть новым экземпляром значения Enum. Это также вполне разумно, потому что мы знаем, что значения перечисления являются просто постоянными статического финала.
5. Реализуйте конкретные интерфейсы
Мы уже знаем, что Enum может определять переменные и методы. Он должен реализовать интерфейс и реализовать интерфейс, такой как обычный класс. Я не приведу пример здесь.
6. Определите свой собственный метод значений перечисления.
Ранее мы видели, что некоторые методы могут быть определены для Enum, но на самом деле мы можем даже определить методы для каждого значения перечисления. Таким образом, наш предыдущий пример переоборудования ToString может быть переписан, как это.
public enum color {red {public String toString () {return "color.red"; }}, Green {public String toString () {return "color.green"; }}, Синий {public String toString () {return "color.blue"; }}; }Говоря по логике, это яснее, чем оригинальный метод ToString, который обеспечивает «глобальный».
В целом, Enum, как совершенно новый тип, надеется помочь программистам написать коды, которые проще и проще для понимания.
Людям, как правило, не нужно использовать некоторые расширенные функции enum, в противном случае он будет противостоять простым и простым в понимании оригинального намерения.
В приведенной выше статье кратко рассказывается о роли и преимуществах перечисления Jave - это весь контент, которым я делюсь с вами. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.