Внутренний класс
– класс внутри другого класса.
Некоторая доп. функциональность, которая относиться только к внешнему классу.
Класс внутри другого класса имеет смысл создавать когда внутренний и внешний класс имеют сильную смысловую связь.
Допустим, мы создаём класс Car
(машина), и нам нужно описать двигатель этой машины. Логично, что двигатель тесно связан с машиной и не имеет смысла как самостоятельный объект без неё. В таком случае можно определить класс двигателя как внутренний класс внутри класса Car
.
Внутренний класс имеет доступ ко всем членам внешнего класса, включая приватные поля. Это ещё больше подчёркивает их взаимосвязь: объект двигателя (внутреннего класса) не существует без объекта машины (внешнего класса).
Соответственно, сначала создаётся объект внешнего класса — машины, а уже на его основе создаётся объект внутреннего класса — двигателя. Это отражает логическую зависимость и облегчает доступ двигателя к данным машины.
Поясним на примере:
Вывод:
