русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Приховування даних в об’єктах


Дата додавання: 2014-04-22; переглядів: 869.


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

Якщо код і дані є розділеними елементами, то завжди існує небезпека виклику правильної процедури з неправильними даними чи помилкової процедури з правильними даними. Контроль за правильністю виклику покладається на програміста. Pascal не проводить подібної перевірки, окрім перевірки типів.

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

Інколи при використанні об’єктів всередині модулів можуть зустрічатися частини описів об’єктів, які експортувати небажано, наприклад, в комерційних застосунках. Необхідно передбачити об’єкти, методи яких доступні, але безпосередній доступ до даних об’єкта заборонений. В Pascal-і з цією метою використовуються приховані (приватні) поля і методи.

Приховані поля і методи доступні тільки всередині того модуля, в якому описаний об’єкт. Інші частини такого об’єкту можна експортувати, але поля і методи, описані як приховані, були б недоступними.

Поля і методи, які записані безпосередньо після заголовку об’єктного типу чи директиви PUBLIC, не мають ніяких обмежень на область дій. На відміну від них, поля і методи, оголошені після директиви PRIVATE, вважаються приватними (прихованими) і обмежені використанням в межах модуля. Повний опис об’єкту буде виглядати так:

TYPE

NewObject=OBJECT(батьківський)

поля; [загальнодоступні];

методи; [загальнодоступні];

PRIVATE

поля; [приватні];

методи; [приватні];

PUBLIC

поля; [загальнодоступні];

методи; [загальнодоступні];

END;

 

 


<== попередня лекція | наступна лекція ==>
Присвоювання об’єктів | Інкапсуляція


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн