Вложенные классы

В Java вложенные классы — это классы, определенные внутри другого класса. Они могут быть статическими или нестатическими (также известными как внутренние классы). Вот основные различия между ними:

  1. Статические вложенные классы (Static Nested Classes):

    • Они объявлены с ключевым словом static.

    • Могут обращаться только к статическим членам внешнего класса.

    • Создание экземпляра статического вложенного класса не требует создания экземпляра внешнего класса.

    • Они часто используются для группировки связанных классов в одном месте.

    Пример статического вложенного класса:

    public class OuterClass {
        static class StaticNestedClass {
            // Код статического вложенного класса
        }
    }
  2. Нестатические вложенные классы (Inner Classes):

    • Они не объявлены с ключевым словом static.

    • Имеют доступ ко всем членам внешнего класса, включая его приватные члены.

    • Для создания экземпляра нестатического вложенного класса сначала необходимо создать экземпляр внешнего класса.

    • Они могут быть обычными внутренними классами (обычные вложенные классы), локальными классами или анонимными классами.

    Пример нестатического вложенного класса:

    public class OuterClass {
        class InnerClass {
            // Код нестатического вложенного класса
        }
    }

Last updated