Інкапсуляція визначається "як процес приклавши один або кілька елементів у фізичному або логічному пакеті". Інкапсуляція, в методології програмування об'єктно-орієнтованого, запобігає несанкціонований доступ до деталей реалізації.
Абстракція і інкапсуляція пов'язані функції в об'єктно-орієнтованого програмування. Абстракція дозволяє зробити відповідну інформацію видимим і інкапсуляція дозволяє программістуреалізовать необхідний рівень абстракції.
Інкапсуляція реалізується з помощьюспеціфікаторов доступа.Спеціфікатор доступу визначає область і видимість члена класу. C # підтримує наступні специфікатори доступу:
- суспільного
- приватний
- захищений
- внутрішній
- захищений внутрішній
Доступ громадськості Тендерний
Відкритий Специфікатор доступу дозволяє класу виставити свої змінні-члени і функції-члени інших функцій і об'єктів. Будь-громадський елемент може бути доступний ззовні класу.
Наступний приклад ілюструє це:
Коли наведений вище код компілюється і виконується, він проводить наступний результат:
У попередньому прикладі, довжина і ширина змінні - члени об'являютсяпублічно, так що вони можуть бути доступні з функції Main (). використовуючи екземпляр класу Rectangle, названий р
Функція - членDisplay () іGetArea () також можуть отримати доступ до цих змінним безпосередньо. без використання будь - якої екземпляр класу.
Функції - члениDisplay () також об'явленобщественності, тому його також можна отримати доступ ізMain (). використовуючи екземпляр класу Rectangle, названий р
Приватний доступ Тендерний
Приватний Специфікатор доступу дозволяє класу приховати свої змінні-члени і функції-члени з інших функцій і об'єктів. Тільки функції одного і того ж класу можуть отримати доступ до його закритим членам. Навіть екземпляр класу не може отримати доступ до його закритим членам.
Наступний приклад ілюструє це:
Коли наведений вище код компілюється і виконується, він проводить наступний результат:
У попередньому прикладі, довжина і ширина змінні - члени об'явленизакритимі, тому вони не можуть бути доступні з функції Main (). Функції - члениAcceptDetails () іDisplay () може отримати доступ до цих змінним. Так як функції члениAcceptDetails () іDisplay () об'являютсяпублічно, вони можуть бути доступні ізMain (). використовуючи екземпляр класу Rectangle, названий р
Захищений доступ Тендерний
Захищений специфікатором доступу дозволяє дочірній клас для доступу до змінних-членам і функції-члени базового класу. Таким чином, це допомагає в реалізації успадкування. Ми обговоримо це більш детально в розділі успадкування.
Внутрішній Специфікатор доступу
Внутрішній Специфікатор доступу дозволяє класу виставити свої змінні-члени і функції-члени інших функцій і об'єктів в поточній збірці. Іншими словами, будь-який член з внутрішнім специфікатор доступу можна отримати доступ з будь-якого класу або методу, визначеного в додатку, в якому визначено елемент.
Наступна програма ілюструє це:
Коли наведений вище код компілюється і виконується, він проводить наступний результат:
У попередньому прикладі, зверніть увагу. що функція членGetArea () не оголошена з будь-яким специфікатором доступу. Тоді що буде специфікатор доступу за замовчуванням члена класу, якщо ми не кажучи вже про яку-небудь? Еточастная.
Захищений доступ Тендерний Внутрішня
Захищений специфікатор внутрішній доступ дозволяє класу приховати свої змінні-члени і члени-функції від інших об'єктів і функцій класу, за винятком дочірнього класу в межах того ж додатка. Це також використовується при реалізації успадкування.