Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Властивості, методи та події




Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:

1. Властивостіпевні параметри і характеристики об'єкту

2. Методидії, що можна виконувати над даним об'єктом, чи які може виконувати він сам

3. Подіїповідомлення що виникають при зміні стану об'єкта

Властивості об’єкта

Властивості реалізують механізм доступу до полів. Кожній властивості відповідає поле, яке містить значення властивості, і два методи, які забезпечують доступ до даного поля. Опис властивостей починається зі слова property, при цьому тип властивості і відповідного поля повинні співпадати. Ключові слова read і write є зарезервованими всередині об’явлення властивості і служать для вказання методів класу, за допомогою яких виконується зчитування значення поля, пов’язаного з властивістю, або запис нового значення в це поле.

У контексті програми з властивістю можна працювати як зі звичайним полем.

Методи класу

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

За замовчуванням усі методи, які об’являються у класі, є статичними і викликаються як звичайні підпрограми.

Але метод, який об’явлений у класі, може викликатись й іншими способами, що залежать від виду цього методу. Вид методу визначається модифікатором, який вказується в описі класу після заголовку методу і відділяється від заголовка крапкою з комою. Наведемо деякі модифікатори: virtual – віртуальний метод; dynamic – динамічний метод; override – перевизначений метод; message – обробка повідомлення; abstract – абстрактний метод.

У розробника існує засіб самому керувати перевизначенням методів на етапі прогонки програми – т.зв. динамічне заміщення методів. Для цього метод, який перевизначаться в батьківському класі, визначається модифікатором virtual або dynamic. У класі-нащадку метод, який буде заміщати батьківський, визначається модифікатором override.

Отримавши директиву virtual, компілятор поміщає інформацію про метод в таблицю віртуальних методів класу (Virtual Method Table – VMT). Неважливо, скільки створено об’єктів класу, - для кожного класу створюється лише одна таблиця віртуальних методів, з якою потім береться адреса відповідного віртуального методу. У таблицю віртуальних методів поміщаються адреси усіх віртуальних методів, які унаслідуються від батьківських. Це прискорює пошук потрібного методу, але збільшує розмір таблиці.

Отримавши директиву dynamic, компілятор поміщає інформацію про метод в таблицю динамічних методів класу (Dynamic Method Table – DMT), де міститься його адреса.

Модифікатор override повідомляє компілятору, що даний метод перевизначає відповідний йому віртуальний (або динамічний) метод.

Часто вихідний метод може не виконувати ніяких дій. У цьому випадку метод називається абстрактним, і бажано, щоб в нащадках він перекривався. Для того, щоб об’явити метод абстрактним, після його заголовка і модифікатора virtual або dynamic необхідно поставити модифікатор abstract.

Повідомлення та події

Для обробки повідомлень, які посилаються ядром Windows і різними програмами, використовуються спеціальні методи, які описуються за допомогою модифікатора, після якого вказується ідентифікатор повідомлення.

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

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

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




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


Дата добавления: 2015-07-13; Просмотров: 922; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.