необходимость использования числовых величин. Если эти значения использовать в явном
виде, то возникает проблема «магических чисел» - т.е. чисел, назначение которых неясно из кода программы. Например:public abstract class DayType {
public static final int SUNDAY = 0;
public static final int SATURDAY = 6;
} …
switch(nn % 7) {
case DayType.SUNDAY: …;
case DayType.SATURDAY : …;
. . .
}
Что могут означать «магические числа» 0 и 6?
День недели? Номера ячеек? …?
Прояснить ситуацию достаточно легко с помощью определения числовых констант:
switch(nn % 7) {
case 0: …;
case 6: …;
. . .
}
Здесь код стал уже достаточно явный. Тем не менее, явно передавать значения для обозначения дня недели строго из интервала 0..6 мы всё же НЕ сможем – придётся использовать целый тип, гораздо более «широкий» чем надо.