Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-й семестр / Лекции / 2 - Презентация.pptx
Скачиваний:
53
Добавлен:
25.12.2020
Размер:
2.24 Mб
Скачать

Центр дистанционного

обучения

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

Пример перечисления видов транспортных средств

enum Transport {

CAR, TRUCK, AIRPLANE, TRAIN, BOAT

}

online.mirea

.ru

Центр дистанционного

обучения

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

Идентификаторы CAR, TRUCK и так далее называются константами перечислимого типа.

Каждый из них автоматически неявно объявляется как открытый (public), статический (static) член перечисления Transport.

Тип этих констант соответствует типу перечисления (в данном случае — Transport). В терминологии Java подобные константы называются самотипизированными (приставка “само” означает, что в качестве типа константы принимается тип перечисления).

online.mirea

.ru

Центр дистанционного

обучения

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

После того, как тип определен, переменная этого типа может быть объявлена

Season time;

а потом ей можно присвоить значение time = Season.fall;

Значения указываются через имя типа

Перечисляемые типы являются безопасными типами - вы не можете присвоить им любое значение, кроме тех, которые уже перечислены

3-43 online.mirea

.ru

Центр дистанционного

обучения

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

Определив перечисление, можно создать переменную данного типа.

Но, несмотря на то, что перечисление определяется как тип класса, получить экземпляр объекта типа enum с помощью оператора new нельзя.

Переменная перечислимого типа создается подобно переменной простого типа.

Например, для объявления переменной tp упомянутого выше перечислимого типа Transport служит следующее выражение:

Transport tp;

online.mirea

.ru

Центр дистанционного

обучения

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

Переменная tp относится к типу Transport, и поэтому ей можно присваивать только те значения, которые определены в данном перечислении.

Например, в следующей строке кода переменной tp присваивается значение AIRPLANE:

tp = Transport.AIRPLANE;

Для проверки равенства констант перечислимого типа служит оператор сравнения =. Например:

if(tp == Transport.TRAIN) // ...

online.mirea

.ru

Центр дистанционного

обучения

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

Также можно использовать switch()

// Применение перечисления для управления оператором switch,

switch(tp) { case CAR:

// ...

case TRUCK: // ...

online.mirea

.ru

Центр дистанционного

Пример Planetобучения.java

public enum Planet {

MERCURY (3.303e+23, 2.4397e6),

VENUS (4.869e+24, 6.0518e6),

EARTH (5.976e+24, 6.37814e6),

MARS (6.421e+23, 3.3972e6),

JUPITER (1.9e+27, 7.1492e7),

SATURN (5.688e+26, 6.0268e7),

URANUS (8.686e+25, 2.5559e7),

NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // в килограммах private final double radius; // в метрах Planet(double mass, double radius) {

this.mass = mass; this.radius = radius;

}

online.mirea

.ru

Центр дистанционного

Пример Planetобучения.java

privateПеречисляемыеdouble mass() { return mass; } типы private double radius() { return radius; }

// гравитационная постоянная

public static final double G = 6.67300E-11;

double surfaceGravity() {

return G * mass / (radius * radius);

}

double surfaceWeight(double otherMass) { return otherMass * surfaceGravity();

}

online.mirea

.ru

Центр дистанционного

Пример Planetобучения.java

publicПеречисляемыеstatic void main(String[] args) { типы if (args.length != 1) {

System.err.println("Usage: java Planet <earth_weight>"); System.exit(-1);

}

double earthWeight = Double.parseDouble(args[0]); double mass = earthWeight/EARTH.surfaceGravity(); for (Planet p : Planet.values())

System.out.printf("Your weight on %s is %f%n", p, p.surfaceWeight(mass));

}

}

online.mirea

.ru

Центр дистанционного

обучения

Работа программы Planet

Your weight on MERCURY is 66.107583 Your weight on VENUS is 158.374842 Your weight on EARTH is 175.000000 Your weight on MARS is 66.279007 Your weight on JUPITER is 442.847567 Your weight on SATURN is 186.552719 Your weight on URANUS is 158.397260

Your weight on NEPTUNE is 199.207413

online.mirea

.ru

Соседние файлы в папке Лекции