Модифікатори доступу public, protected і private в java, програмування на java, android
Java забезпечує контроль доступу через три модифікатора - public, protected and private. Ми не зобов'язані використовувати ці модифікатори доступу завжди, тому у нас є ще модифікатор доступу за замовчуванням, а саме default access, package-private або no modifier.
Ми можемо використовувати модифікатори доступу з класами, а також змінними класу і методами.
Модифікатори доступу Java Class
Розробники мови дозволили використовувати тільки «public» або «default» для роботи з Java класами.
- Якщо клас «public», то ми можемо отримати до нього доступ з будь-якої точки світу, тобто від будь-якого іншого класу, розташованого в будь-яких інших пакетах і т.д.
- Ми можемо мати тільки один «public» клас у вихідному файлі. Також слід вказати, що ім'я файлу повинна бути таким же, як ім'я public-класу.
- Якщо клас має «default access» (доступ за замовчуванням), то він може бути доступний тільки з інших класів в одному пакеті.
Наведені вище правила застосовуються і до внутрішніх класів.
Модифікатори доступу в Java класі
Ми можемо мати всі чотири модифікатора доступу для змінних-членів класу і методів. Однак правила доступу для членів класу будуть застосовні тільки після правил доступу на рівні класу. Наприклад, якщо клас, який має доступ за замовчуванням (default access), то він не буде видно в інших пакетах і, отже, методи і змінні класу також будуть не видно.
Ми будемо вивчати кожен випадок окремо, а потім покажемо доступи в простій програмі.
модифікатор public
Якщо член класу «public», то він може бути використаний в будь-якому місці. Мінлива чи метод має доступ в глобальному масштабі. Це простий спосіб забезпечити доступ до членів класу, однак ми повинні дбати у використанні цього ключового слова / модифікатора зі змінними класу, в іншому випадку хтось може змінити значення. Зазвичай змінні класу private. а доступ до цих змінним здійснюється через getter-setterметоди.
модифікатор private
Якщо член класу «private», то він буде доступний тільки всередині того ж класу. Це найбільш обмежений доступ, тому член класу не буде видно для зовнішнього світу. Зазвичай змінні класу і методи, призначені для використання тільки всередині класу, роблять private.
модифікатор protected
Якщо член класу «protected», то він буде доступний тільки для класів в одному пакеті і в підкласах. Цей модифікатор менш обмежений, ніж private, але більш обмежений, ніж public. Зазвичай ми використовуємо це ключове слово / модифікатор, щоб переконатися, що змінні класу доступні тільки для підкласів.
модифікатор default
Якщо в члені класу не вказано будь-якої модифікатор доступу, то він має доступ за замовчуванням (default). Правила доступу подібні класам і членам класу з доступом за замовчуванням. В цьому випадку доступ буде тільки для класів в одному пакеті. Цей доступ є більш обмеженим, ніж public і protected, але менш обмежений, ніж private.
Ланцюжок доступності: від менш доступних до більш доступним
Давайте напишемо кілька простих класів, де ми побачимо модифікатори доступу в дії.