Разница между статическими и нестатическими классами заключается в следующем:
- Доступ к членам внешнего класса. 1 Статические классы имеют доступ только к статическим членам внешнего класса, а нестатические — ко всем членам (как статическим, так и нестатическим). 1
- Создание экземпляров. 1 Экземпляр статического класса можно создать независимо от внешнего класса, а для создания экземпляра нестатического класса требуется существующий экземпляр внешнего класса. 1
- Ссылки на внешний класс. 1 Статические классы не имеют неявной ссылки на экземпляр внешнего класса, а нестатические — имеют. 1
Выбор между статическим и нестатическим классом зависит от того, требуется ли связь с конкретным экземпляром внешнего класса или нет. 5