Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 5 - Презентация 2

.pdf
Скачиваний:
60
Добавлен:
25.12.2020
Размер:
1.13 Mб
Скачать

Центр дистанционного обучения

Лекция 5 Программирование на

Java

ФИО преподавателя: Зорина Наталья Валентиновна e-mail: zorina@mirea.ru,zorina_n@mail.ru

Online-edu.mirea.ru

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

public enum Direction { NORTH, EAST, SOUTH, WEST

}

Direction dir = Direction.NORTH; Direction[] allDirections = Direction.values();

Других значений, кроме перечисленных, в типе Direction нет

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

public enum Direction { NORTH, EAST, SOUTH, WEST

}

Преобразование в строку: Direction dir1 = Direction.NORTH; String n = dir1.name(); // “NORTH”

Преобразование из строки:

Direction dir2 = Direction.valueOf(“SOUTH”);

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

public enum Direction { NORTH, EAST, SOUTH, WEST

}

Direction dir = Direction.NORTH;

int cmp = dir.compareTo(Direction.SOUTH); // -1

Сравнение идет по порядку в перечислении: NORTH < SOUTH

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

Могут иметь поля:

public enum Direction {

NORTH(“Север”), EAST(“Восток”), SOUTH(“Юг”), WEST(“Запад”);

public final String text;

Direction(String text) {

this.text = text;

}

}

String north = Direction.NORTH.text;

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

На самом деле является обычным классом:

public final class Direction extends Enum {

public static final Direction NORTH = new Direction(“Север”);

...

public final String text;

private Direction(String text) {

this.text = text;

}

}

String north = Direction.NORTH.text;

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

Могут иметь методы:

public enum Direction {

NORTH(“Север”), EAST(“Восток”), SOUTH(“Юг”), WEST(“Запад”); public final String text;

Direction(String text) { this.text = text;

}

@Override

public String toString() { return text; }

}

String north = Direction.NORTH.toString();

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

И даже абстрактные методы:

public enum Direction { NORTH {

public String getText() { return “Север”; }

},

EAST {

public String getText() { return “Восток”; }

},

...;

public abstract String getText();

}

String north = Direction.NORTH.getText();

online.mirea.ru

Центр дистанционного обучения

Перечислимые типы

Экземпляры перечислимых типов можно сравнивать с помощью операции == (для других классов нужно использовать метод equals):

Direction dir1 = ...;

if (dir1 == Direction.NORTH) {

...

}

online.mirea.ru

Перечислимые типы

Оператор switch для перечислимых типов:

Direction dir1 = ...;

switch (dir1) {

case NORTH: // Уже не нужно Direction.

System.out.println(“Это север”);

break;

case SOUTH:

System.out.println(“Это юг”);

break;

default:

System.out.println(“Это где-то еще”);

break;

}

Центр дистанционного обучения

online.mirea.ru