Использование такое же, как у класса, вложенного в другой класс: оно позволяет определить область действия класса до интерфейса. Вы можете представить что-то вроде этого:
public interface Switch {
public enum Status {
ON, OFF;
}
void doSwitch();
Status getStatus();
}
Это позволяет избежать определения класса верхнего уровня с именем SwitchStatus
(поскольку Status
может быть слишком общим именем).