русс | укр

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

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


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


Приховування даних і доступність функцій


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


Як правило, приховуючи дані класу, його методи залишають доступними. Це пояснюється тим, що дані приховують з метою уникнути небажаного зовнішнього впливу на них, а функції, що працюють з цими даними, повинні забезпечувати взаємодію між даними і зовнішньою по відношенню до класу частиною програми. Тим не менше, не існує чіткого правила, яке б визначало, які класи слід описувати як private, а які – як public. Можемо зіткнутися з ситуацією, коли необхідно буде приховати функції і забезпечити вільний доступ до полів класу.

 

Методи класу всередині визначення класу

Методи класу smallobj виконують дії, типові для методів класів взагалі: вони зчитують і присвоюють значення полям класу. Метод setdata() приймає аргумент і присвоює полю somedata значення, рівне значенню аргумента. Метод showdata() відображає на екрані значення поля somedata.

Зверніть увагу, що функції setdata() і showdata() визначені всередині класу, тобто код функції міститься безпосередньо у визначенні класу. Тут визначення функції не означає, що код функції поміщається в пам’ять. Таке відбувається лише при створенні об’єкту класу. Можна вчинити так, як ми звичайно робили при вивченні Паскалю – оголосити функцію в означенні класу, а визначити її в іншому місці.

 

Використання класу

Подивимося, як можна використати вже визначений клас в функції main(). Після оператора, який очищає вікно користувача (clrscr() ) наступний оператор

smallobj s1,s2;

Цей оператор визначає два об’єкти s1 і s2 класу smallobj. При визначенні класу не створюються ніякі його об’єкти, тільки задається вигляд майбутнього об’єкта. Всі операції програма здійснює з об’єктами. Визначення об’єкта схоже на визначення змінної: воно означає виділення пам’яті, необхідної для збереження об’єкта.

Виклик методів відбувається в такій самій формі, як у Паскалі

s1.setdata(3066);

s2.setdata(3776);

s1.showdata();

s2.showdata();

Для того, щоб дістати доступ до методу класу, необхідно використовувати операцію крапки (.), що зв’язує метод з іменем об’єкта. Ще цю операцію називають операцією доступу до методу класу.

Оператор

s1.setdata(3066);

викликає метод setdata об’єкта s1. Метод присвоює полю somedata значення 3066. Подібним способом оператор

s2.setdata(3776);

присвоює полю somedata об’єкта s2 значення 3776. Тепер у нас є два об’єкти з різними значеннями поля somedata.

Аналогічно, два виклики функції showdata() відобразять на екрані значення полів відповідних об’єктів.

s1.showdata();

s2.showdata();

 


<== попередня лекція | наступна лекція ==>
Методи класу | Повідомлення


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