В Java есть два основных типа вложенных классов: внутренние классы (inner classes) и статические вложенные классы (static nested classes). Внутренние классы - это классы, объявленные внутри другого класса без использования модификатора static. Такие классы имеют доступ к членам внешнего класса, включая приватные поля и методы, и могут использоваться для создания более читаемого и логически законченного кода. Статические вложенные классы - это классы, объявленные внутри другого класса с использованием модификатора static. Эти классы не имеют доступа к членам внешнего класса и используются для логической группировки классов и для создания пространства имен. Пример создания статического вложенного класса: public class OuterClass {
// Код внешнего класса public static class InnerStaticClass {
// Код статического вложенного класса }
} Пример создания внутреннего класса: public class OuterClass {
// Код внешнего класса public class InnerClass {
// Код внутреннего класса