Основне меню  

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

Калькулятор расчета пеноблоков смотрите на этом ресурсе
Все о каркасном доме можно найти здесь http://stroidom-shop.ru
Как снять комнату в коммунальной квартире смотрите тут comintour.net
   

Реклама в мережі  

   

Статистика  

Користувачі
1
Статті
180
Перегляди статей
595350
   

Пошук по сайту  

   

Ми знаходимось тут  

   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Відеокурс по С++  

   

Рекомендуємо:  

   

Ми в контактах  

   

Сайти  

Українські уроки про ІТ

Єдина Країна! Единая Страна!

 

Українські уроки про програмування

 

 
   

На цьому уроці ми поговоримо про ще один з базових принципів ООП - інкапсуляції.

Скажу відразу, що ця тема складна для розуміння новачкові, і для гарного освоєння теми, прочитати цей урок або будь-який інший недостатньо. Розуміння інкапсуляції прийде з практикою. На цьому уроці я постараюся направити вас на правильне мислення.

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

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

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

От уявіть собі телевізор без корпусу. Людина хоче перемкнути канал, підходить до телевізора, і замість того, щоб натиснути кнопку перемикання каналу, він висмикує якийсь проводок (ну не мав він ніколи справи з телевізорами або п'яний). Канал не переключився, результат не той. У програмуванні це рівноцінно викликом допоміжного методу, непризначених для прямого виклику. Людині властиво помилятися, інкапсуляція дозволяє позбавити програміста від допущення подібного роду помилок.

Для реалізації інкапсуляції в Сі-шарп використовуються модифікатори доступу. Які вони бувають я вже писав в уроці Класи в Сі-шарп, але повторюся і тут:

- Public - доступ до члена можливий з будь-якого місця однієї збірки, або з іншої збірки, на яку є посилання;

- Protected - доступ до члена можливий тільки усередині класу, або в класі-спадкоємця (при спадкуванні);

- Internal - доступ до члена можливий тільки з збірки, в якої він проголошений;

- Private - доступ до члена можливий тільки всередині класу;

- Protected internal - доступ до члена можливий з однієї збірки, або з класу-спадкоємця інший збірки.

Який модифікатор і де використовувати, так однозначно пояснити неможливо. Все залежить від конкретного завдання, ситуації. Знаю, що вибір модифікатора є однією з найчастіших проблем новачків. Скажу, що для початку головне розібратися з трьома модифікаторами - public, protected і private. Вся вище написана теорія повинна допомогти вам у їх освоєнні, а закріплення знань прийде тільки з практикою. Але одну підказку таки скажу. Прості поля класу майже ніколи не оголошуються як public, дотримуйтеся цієї норми.

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

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

 

Додати коментар

Захисний код
Оновити

   

Поділіться з друзями

 
   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt