1. Разница между перечислением и статическими константами
Когда дело доходит до перечисления, мы сначала думаем о том, чем это отличается от констант, измененных общественной статической конечной строкой.
Я приведу два преимущества перечисления:
1. Обеспечить безопасность типа: вызывающий абонент не может передать значение int или строки по желанию;
2. Код очень читабелен;
Например:
В фактическом программировании часто бывают такие «наборы данных», значения которых стабильны в программе, а элементы в «наборах данных» ограничены. Например, четыре элемента данных весны, лета, осени и зимы образуют «набор данных» четырех сезонов.
Вы написали метод Get (String Season), а тип, который вы ввод, могут быть только типом строки, а строка может быть только (весна, лето, осень, зима).
На этот раз. Вы пишете четыре константы строки
открытый класс common {public static final String Spring = "Spring"; Public Static Final String Season = "Summer"; Public Static Final String Summer = "осень"; Общественная статическая финальная строка осень = "зима";}Помещение Get (Common.esesess) в методе Get действительно вкладывает в него «пружину», но в настоящее время вы обнаружите, что здесь есть скрытая опасность. Вы получаете (струнный сезон), в конце концов, тип строки помещается. Если новый коллега или неосведомленный коллега не знает, что вы можете поместить только «весна, лето, осень и зима» в этом методе. Он ставит строку, такую как Get ("Xiaoxiao"). В настоящее время он не будет сообщать об ошибке в течение периода компиляции. Только после бега он обнаружит, что это неправильно.
Чтобы предотвратить вышеуказанные опасности, появляется перечисление
Общедоступный сезон enum {весна («весна»), лето («лето»), осень («осень»), зима («зима»); ....}В настоящее время мы изменяем передачу параметров метода GET и изменяем его на получение (сезон сезона). В настоящее время мы добавляем get (season.spring), что может гарантировать, что только несколько параметров.
2. Понять перечисление
Прежде всего, мы должны быть ясны. На самом деле, перечисление также является классовым классом. Я напишу перечисление, чтобы понять.
// мы относимся к Enums как общедоступный сезон общего класса Enum {весна (1, «весна»), лето (2, «лето»), осень (3, "осень"), зима (4, "зима"); // Последний здесь должен быть полуколон, в противном случае будет сообщена ошибка/ *Мы можем понять ее как *публичный статический финальный сезон весна = новый сезон (1, весна); *Публичный статический финальный сезон лето = новый сезон (2, лето); *Общественный статический финальный сезон осень = новый сезон (3, осень); *Общественный статический финальный сезон зима = новый сезон (4, зима); * Поскольку это объект, это легко понять ниже*//** 1. В объекте выше есть два параметра, поэтому должен быть конструктор этого типа ниже* 2. Это приватно, потому что он не может быть новым объектом*/ private Season (int Code, String name) {this.name = name; this.code = code; } // атрибуты объекта частной строки имени; частный код int; // методы получения свойств объекта public String getName () {return this.name; } public String getCode () {return this.name; } // Получить объект через код, мы можем получить другие свойства объекта Public Static Season DeCode (int code) {сезон сезон = null; для (тип сезона: season.values ()) {if (type.code == code) {season = type; перерыв; }} return Season; } // Метод повторного поступления public String toString () {return this.name; }}Приведенный выше пример очень хорошо объясняет перечисление. Это ничем не отличается от обычных классов. Он просто использует другой способ создания нескольких объектов с атрибутами. Это также требует такого конструктора с атрибутами, и это все.
Вот некоторые из особенностей перечисления:
1. Он не может иметь публичного конструктора, и это может убедиться, что клиент -код не может создать новый экземпляр Enum.
2. Перечисление не может наследовать другие классы, потому что оно унаследовает java.lang.enum по умолчанию.
3. Адрес постоянного значения уникален, и вы можете использовать ==, чтобы напрямую сравнить его, и производительность будет улучшена.
4. Enum также предоставляет метод значений, который позволяет легко пройти все значения перечисления.
5. Enum также имеет оригинальный метод, который возвращает порядок значений перечисления в классе перечисления, который зависит от порядка объявления значения перечисления.
3. Общее использование перечисления
Первый тип: приложение переключения
Сначала создайте перечисление:
public enum common {вставьте, изменить, удалить} // Поскольку это объект без параметров, можно использовать конструктор системы по умолчанию. Нет необходимости писать атрибуты и методы.Написание кода реализации
открытый класс Commonutils {public static void getType (Common Common) {common c = common; Switch (c) {case insert: system.out.println ("insert hoper erany"); перерыв; Case Modify: System.out.println ("Настройка операции"); перерыв; Case Delete: System.out.println ("Удалить операцию"); перерыв; }} public static void main (string [] args) {getType (common.delete); // фоновый выход: удаление операции}}Второе использование состоит в том, чтобы получить значение значения через значение ключа, чтобы получить другие значения
Класс перечисления
Public Enum Season {Spring (1, «Spring», «Весенние кайты полеты весной»), лето (2, «лето», «плавание летом»), осень (3, "осень", "осень осенью"), зима (4, "зима", «зима" (int -код, название строки, строка bz) {code = name = name; Private String BZ;Тестовый класс
Хорошо, я так много напишу, и я узнаю более подробно, если мне это понадобится в будущем. Спасибо за поддержку Wulin.com.