Зачем использовать вложенные классы?

Неоднократно замечал в разных проектах классы внутри других классов, долго не мог понять зачем это делать. Почему нельзя просто взять и создать класс? Зачем создавать новый класс именно в другом классе? Может там есть какие-то приколы, которых я не знаю… Просвятите пожалуйста

На самом деле причин для использования вложенных классов несколько:

1) Иногда бывает момент, когда класс нужен только для какого-то другого класса. В данном случае удобнее было бы написать вспомогательный класс внутри данного, что б избежать будущих проблем и недопониманий от других разработчиков над данным проектом. Например рассмотрим класс Автомобиль, в котором есть различные детали типа двигатель, трансмиссия и тд. Двигатель автомобиля относится только к автомобилю, посему логично было бы занести класс Двигатель в класс Автомобиль.

2) Увеличение инкапсуляции для лучшей структуры проекта.