Що таке публічне, приватне та захищене в об’єктно-орієнтованому програмуванні?
Що таке публічне, приватне та захищене в об’єктно-орієнтованому програмуванні?
Відповіді:
Вони є модифікаторами доступу та допомагають нам впровадити Інкапсуляцію (або приховування інформації). Вони повідомляють компілятору, які інші класи повинні мати доступ до поля або методу, що визначається.
private
- Лише поточний клас матиме доступ до поля або методу.
protected
- Лише поточний клас і підкласи (а іноді і класи з однаковим пакетом) цього класу матимуть доступ до поля або методу.
public
- Будь-який клас може посилатися на поле або викликати метод.
Це передбачає, що ці ключові слова використовуються як частина оголошення поля або методу у визначенні класу.
Це насправді не поняття, а досить специфічні ключові слова, які, як правило, трапляються (з дещо іншою семантикою) у популярних мовах, таких як C ++ та Java.
По суті, вони призначені для того, щоб дозволити класу обмежити доступ до членів (полів або функцій). Ідея полягає в тому, що чим менше одному типу дозволено отримати доступ до іншого типу, тим менше залежностей може бути створено. Це дозволяє легше змінювати об'єкт, до якого здійснюється доступ, не впливаючи на об'єкти, що посилаються на нього.
Загалом кажучи, загальнодоступний означає, що кожен має доступ, приватний означає, що доступ мають лише члени одного класу, а захищений означає, що також дозволено членам підкласів. Однак кожна мова додає до цього свої речі. Наприклад, C ++ дозволяє успадковувати непублічно. У Java також існує рівень доступу за замовчуванням (пакет), і існують правила щодо внутрішніх класів тощо.
Всі ці три є модифікаторами доступу та ключовими словами, які використовуються в класі. Все, що оголошено публічно, може використовуватися будь-яким об'єктом у класі або поза ним, змінні в приватному режимі можуть використовуватися лише об'єктами в класі і не можуть бути змінені за допомогою прямого доступу (оскільки це може змінюватися за допомогою таких функцій, як друга) Все, що визначено в захищеному розділі, може використовуватися класом та їх щойно похідним класом.
Загальнодоступний предмет - це предмет, доступний будь-якому іншому класу. Вам просто потрібно знати, що це за об’єкт, і ви можете використовувати оператор крапок для доступу до нього. Захищений означає, що клас та його підкласи мають доступ до змінної, але не будь-яких інших класів, їм потрібно використовувати геттер / сеттер, щоб робити що-небудь зі змінною. Приватний означає, що лише цей клас має прямий доступ до змінної, а все інше потребує методу / функції для доступу або зміни цих даних. Сподіваюся, це допомагає.
як вище, але якісно:
private - least access, best encapsulation
protected - some access, moderate encapsulation
public - full access, no encapsulation
чим менше доступу ви надаєте, тим менше деталей реалізації витікає з ваших об’єктів. менша кількість такого витоку означає більшу гнучкість (вона ж "більш вільне з'єднання") з точки зору зміни способу реалізації об'єкта, не порушуючи клієнтів об'єкта. це справді фундаментальна річ для розуміння.
Підводячи підсумок, в об’єктно-орієнтованому програмуванні все моделюється на класи та об’єкти. Класи містять властивості та методи. Відкриті, приватні та захищені ключові слова використовуються для вказівки доступу до цих членів (властивостей та методів) класу з інших класів чи інших .dll чи навіть інших програм.