- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •• Данные
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •РекурсивныйЦентри дистанционногоне
- •Центр дистанционного
- •Центр дистанционного
- •Пример: факториалЦентр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Ц нтр дистанционного
- •Другие примеры:Центр дистанционного
- •Пример: палиндромЦе тр истанционного
- •Немного другойЦентрпример:дистанционного
- •Центр ди танционного
- •Взаимная рекурсияЦентр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
- •Центр дистанционного
Центр дистанционного
обучения
Перечисляемые типы
•Пример перечисления видов транспортных средств
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