Видео: Scopes and Inner Beans - 4 - The Basics of Spring Framework 2024
По мере усложнения ваших приложений Java необходимость рассмотрения области становится все более важной. Основная причина заключается в том, что вы можете непреднамеренно ввести ошибку в свое приложение, не соблюдая правила определения области видимости.
Это может произойти из-за неправильного использования пользователем или другим членом приложения (например, добавления неправильного значения данных или доступа к методу в неправильное время или с неправильными данными). Кроме того, неправильное определение области может оставить дверь открытой для посторонних, чтобы взаимодействовать с вашим приложением непредвиденными способами (например, с вирусом).
Область по умолчанию возникает, когда вы специально не назначаете область для элемента класса. Поскольку многие разработчики Java понятия не имеют, какая область по умолчанию для некоторых элементов (и использование области по умолчанию означает, что ваш код не документирован), это не используется очень часто.
Тем не менее, вам нужно t o знать, какова область по умолчанию для различных элементов, потому что некоторые разработчики Java полагаются на нее. Однако, прежде чем вы сможете понять область по умолчанию, вам необходимо рассмотреть видимость - меру того, какие элементы приложения могут видеть член. Java предоставляет следующие уровни видимости (в общем порядке инкапсуляции):
-
Пакет: Контейнер, используемый для хранения нескольких классов. При работе с простой структурой каталогов, как это делают примеры в этой книге, пакет является каталогом, который содержит несколько. класс файлов.
-
Класс: Класс обычно находится в одном. java-файл, который вы компилируете в. файл класса. Он содержит объявление одного класса.
-
Метод: Элемент может находиться в классе или как часть метода. Этот метод действует как контейнер для хранения элемента.
-
Блок: Элемент может находиться внутри кодового блока, например цикла for.
Область частично зависит от местоположения, используемого для объявления элемента. Например, переменная, определенная внутри блока (например, цикл for), видна только внутри этого блока. Когда вы пытаетесь использовать переменную вне блока, Java отображает исключение. Принимая во внимание обзор, эта таблица описывает различные уровни охвата в среде Java.
Видимость | private | (по умолчанию) | protected | public |
---|---|---|---|---|
Доступно из класса | X | X | X | X |
Доступно из пакета | X | X | X | |
Доступно из любого дочернего класса | X | X | ||
Доступно где угодно | X |
Таблица показывает, как область по умолчанию вписывается в схему вещей. Например, если вы объявляете метод с использованием области по умолчанию, любой метод может использовать его, если он находится в одном пакете.Кроме того, если вы создаете класс, который наследуется от класса, содержащего этот метод, подкласс может использовать этот метод, если он находится в одном пакете.
Однако, если подкласс существует вне текущего пакета, он не может использовать этот метод. Короче говоря, область по умолчанию является немного более ограничивающей, чем защищенная область, но менее ограничительной, чем частная область.