В Java все имеет какую -то форму контроля доступа.
Уровень управления разрешений на доступ к наибольшему до минимума: публичные, защищенные, разрешения на доступ к пакетам (без ключевых слов) и частного.
При использовании модификаторы доступа Java, общедоступные, защищенные и частные, расположены перед каждым определением каждого члена (домена или метода) в классе.
1. Права доступа членов класса
Единственный способ получить доступ к участнику - это:
1). Сделать этого члена публичным. Независимо от того, кто есть, может получить доступ;
2). Доступ к участникам предоставления пакета путем невысоки модификаторов и размещения других классов в том же пакете, а другие классы в пакете могут получить доступ к участнику;
3). Унаследованные классы могут получить доступ к общественным членам и защищенным членам.
4). Предоставьте методы аксессуара и мутатора для чтения и изменения числовых значений.
1. Разрешения на доступ к пакетам
В разрешении на доступ к доступу по умолчанию нет никаких ключевых слов, но проход относится к разрешениям на доступ к пакетам, что означает, что все другие классы в текущем отчете имеют доступ к этому участнику, но для всех классов за пределами этого пакета этот участник действительно является частным.
Доступ к пакетам объединяет все соответствующие классы в пакете, чтобы они могли легко взаимодействовать друг с другом.
ПРИМЕЧАНИЕ. Если два класса находятся в одном каталоге и не устанавливают для себя какого -либо имени пакета, Java автоматически рассматривает такие файлы как пакет по умолчанию, связанный с каталогом, поэтому эти файлы имеют доступ к друг другу.
Следующий пример иллюстрирует эту проблему:
// Класс торт и пирог находятся в том же каталоге и не отображаются в каком -либо классе пакетов Pie {void f () {System.out.println ("pie.f ()"); }} класс торт {public static void main (string [] args) {pie x = new pie (); xf (); }} // Вывод quie.f ()2. Публик: разрешения на доступ к интерфейсу
Использование ключевого слова означает, что последующие объявления участников доступны для всех, особенно клиентских программистов, которые используют классовые библиотеки.
3. ПРИВАТ: Вы не можете получить к нему доступ
Ключевое слово Private указывает, что ни один другой класс, кроме класса, содержащего участник, не может получить доступ к участнику. Другие классы в том же пакете не могут получить доступ к частным членам этого класса, поэтому это эквивалентно изоляции себя.
Эта функция частного ключевого слова имеет много применений, таких как контроль того, как создаются объекты и не позволяют другим получить непосредственный доступ к конкретному конструктору (или всем конструкторам). смотреть
Следующий пример:
класс Sundae {private sundae () {} static sundae makeasundae () {return new sundae (); }} public class icecream {public static void main (string [] args) {sundae x = sundae.makeasundae (); }}В этом примере мы можем создавать объекты Sundae, вызывая метод makeasundae (), но мы не можем создать их через конструктор.
Это также относится к частным полям в классе.
Однако, чтобы отметить, что вы не можете думать, что другие объекты не могут иметь публичные ссылки на объект только потому, что ссылка на объект в классе является частной.
4. Защита: наследственные разрешения на доступ к доступу
Если новый пакет создается и наследует класс из другого пакета, единственный участник, к которому можно получить доступ, является публичный член исходного пакета.
Иногда создатель базового класса хочет назначить доступ к конкретному члену к полученному классу, а не всем классам, что требует защищенного ключевого слова.
Обратите внимание, что Protected также обеспечивает доступ к пакетам, то есть другие классы в одном и том же пакете также могут получить доступ к защищенным элементам этого класса.
2. Интерфейс и реализация
Контроль за правами доступа часто называют скрытым в конкретных реализациях.
Данные и методы упаковки в классы, а также скрытие конкретных реализаций часто называют инкапсуляцией.
По двум важным причинам контроль разрешения доступа лежит границы разрешений внутри типа данных:
1. Установите ограничения, которые клиентские программисты могут использовать и не могут использовать. Вы можете установить свой собственный внутренний механизм в структуре, не беспокоясь о том, что клиентские программисты будут случайно рассматривать внутренний механизм как часть используемого ими интерфейса.
2. Разделите интерфейс и конкретную реализацию.
3. разрешения на доступ к классу
В Java модификаторы доступа также могут использоваться для определения того, какие классы в библиотеке доступны пользователю библиотеки.
Модификаторы должны быть размещены перед классом ключевых слов. Например:
виджет открытого класса {......} или
улучшить Access.widget;
Вы должны знать, что класс не может быть частным (если класс является частным, то ни один другой класс не может получить к нему доступ, кроме класса), и его не может быть защищен (на самом деле, внутренний класс может быть частным или защищенным, но это особый случай, как описано в последующих статьях), и может быть только разрешения на доступ к упаковке или публичные.
Если вы не хотите, чтобы другие получали доступ к классу, вы можете указать все конструкторы класса как частные, не позволяя кому -либо создавать объекты класса. Но есть исключения из этого, которые не могут помешать вам создать класс внутри статического члена класса. Давайте посмотрим на следующий пример:
Class Soup1 {private Soup1 () {} public Static Soup1 mustopoup () {// Создать объект, используя статический метод, возвращает новый Soup1 (); }} класс soup2 {private soup2 () {} частный статический суп2 ps1 = new Soup2 (); // Создать объект с использованием режима Singleton Public Static Soup2 Access () {return PS1; } public void f () {}} public Class Lunch {void testPrivate () {// soup1 soup = new Soup1; Не может быть выполнен} void testsingleton () {soup2.access (). F (); }}Мы видим, что конструкторы Soup1 и Soup2 являются частными, и никто не может напрямую использовать конструктор для создания объектов этого класса. Но мы также можем использовать эти два класса: создать статический метод в Soup1, использовать конструктор, чтобы создать объект Soup1 и вернуть его ссылку; Создание Soup2 использует синглтонский рисунок в рисунке дизайна и может создать только один из его объектов. Объект класса Soup2 создан как статический частное члены Soup2, поэтому есть только один, и к нему нельзя получить доступ, если он не будет доступен через публичный метод.
Кроме того, стоит отметить некоторые ограничения:
1. Каждый компиляционный блок может иметь только один публичный класс.
2. Имя публичного класса должен точно соответствовать имени файла, которое содержит блок компиляции, включая верхний и нижний чехол.
3. Если в подразделении компиляции нет публичного класса, вы можете назвать файл по желанию.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.