C # інкапсуляція

Інкапсуляція визначається "як процес приклавши один або кілька елементів у фізичному або логічному пакеті". Інкапсуляція, в методології програмування об'єктно-орієнтованого, запобігає несанкціонований доступ до деталей реалізації.

Абстракція і інкапсуляція пов'язані функції в об'єктно-орієнтованого програмування. Абстракція дозволяє зробити відповідну інформацію видимим і інкапсуляція дозволяє программістуреалізовать необхідний рівень абстракції.

Інкапсуляція реалізується з помощьюспеціфікаторов доступа.Спеціфікатор доступу визначає область і видимість члена класу. C # підтримує наступні специфікатори доступу:

  • суспільного
  • приватний
  • захищений
  • внутрішній
  • захищений внутрішній

Доступ громадськості Тендерний

Відкритий Специфікатор доступу дозволяє класу виставити свої змінні-члени і функції-члени інших функцій і об'єктів. Будь-громадський елемент може бути доступний ззовні класу.

Наступний приклад ілюструє це:

Коли наведений вище код компілюється і виконується, він проводить наступний результат:

У попередньому прикладі, довжина і ширина змінні - члени об'являютсяпублічно, так що вони можуть бути доступні з функції Main (). використовуючи екземпляр класу Rectangle, названий р

Функція - членDisplay () іGetArea () також можуть отримати доступ до цих змінним безпосередньо. без використання будь - якої екземпляр класу.

Функції - члениDisplay () також об'явленобщественності, тому його також можна отримати доступ ізMain (). використовуючи екземпляр класу Rectangle, названий р

Приватний доступ Тендерний

Приватний Специфікатор доступу дозволяє класу приховати свої змінні-члени і функції-члени з інших функцій і об'єктів. Тільки функції одного і того ж класу можуть отримати доступ до його закритим членам. Навіть екземпляр класу не може отримати доступ до його закритим членам.

Наступний приклад ілюструє це:

Коли наведений вище код компілюється і виконується, він проводить наступний результат:

У попередньому прикладі, довжина і ширина змінні - члени об'явленизакритимі, тому вони не можуть бути доступні з функції Main (). Функції - члениAcceptDetails () іDisplay () може отримати доступ до цих змінним. Так як функції члениAcceptDetails () іDisplay () об'являютсяпублічно, вони можуть бути доступні ізMain (). використовуючи екземпляр класу Rectangle, названий р

Захищений доступ Тендерний

Захищений специфікатором доступу дозволяє дочірній клас для доступу до змінних-членам і функції-члени базового класу. Таким чином, це допомагає в реалізації успадкування. Ми обговоримо це більш детально в розділі успадкування.

Внутрішній Специфікатор доступу

Внутрішній Специфікатор доступу дозволяє класу виставити свої змінні-члени і функції-члени інших функцій і об'єктів в поточній збірці. Іншими словами, будь-який член з внутрішнім специфікатор доступу можна отримати доступ з будь-якого класу або методу, визначеного в додатку, в якому визначено елемент.

Наступна програма ілюструє це:

Коли наведений вище код компілюється і виконується, він проводить наступний результат:

У попередньому прикладі, зверніть увагу. що функція членGetArea () не оголошена з будь-яким специфікатором доступу. Тоді що буде специфікатор доступу за замовчуванням члена класу, якщо ми не кажучи вже про яку-небудь? Еточастная.

Захищений доступ Тендерний Внутрішня

Захищений специфікатор внутрішній доступ дозволяє класу приховати свої змінні-члени і члени-функції від інших об'єктів і функцій класу, за винятком дочірнього класу в межах того ж додатка. Це також використовується при реалізації успадкування.

Схожі статті