На цьому занятті ви дізнаєтеся способи додавання властивостей в клас, створений на попередньому занятті.
На попередньому занятті Детальний розгляд. Поняття про властивості, методи і події було показано, що всі об'єкти можуть мати атрибути і властивості, що представляють їх. на попередньому занятті клас Persons представляє людини. Кожна людина має такі атрибути, як ім'я та вік, тому клас Persons вимагає властивостей для подання цих атрибутів.
Властивості можна додати до класу двома способами: як поле або як процедуру властивості. Можна також визначити дію властивості за допомогою модифікаторів властивостей Public. ReadOnly або WriteOnly.
Код для додавання поля до класу буде виглядати наступним чином.
У першому рядку коду оголошується приватна змінна типу String. nameValue. яка буде зберігати значення властивості. Сама процедура властивості починається з Public Property і закінчується End Property.
Процедура Get містить код, який буде виконуватися при читанні значення. Наприклад, якщо зчитується властивість Persons.Name. код буде повертати значення, збережене в змінної nameValue.
Процедура Set містить код, який використовується для присвоювання нового значення змінної nameValue з використанням значення, переданого в якості аргументу value. Наприклад, якщо написати код Persons.Name = "John". значення типу String (John) буде передаватися в якості аргументу value. Потім код процедури Set привласнює передане значення змінної NameValue.
Може виникнути питання, навіщо використовувати процедуру властивості для подання властивості Name замість поля. У реальному світі існують певні правила для імен. Наприклад, імена зазвичай не містять числа. Можна додати код до процедури Set для перевірки аргументу value і повернення помилки, якщо аргумент містить цифри.
У наступній процедурі до класу Persons додаються поле і три властивості.
Додавання властивостей до класу
Відкрийте проект Persons. створений на попередньому занятті. Якщо він не був збережений, спочатку необхідно повернутися до попередньої теми Моделювання об'єкта реального світу: створення першого класу і завершити описані в ньому дії.
У браузері рішень виберіть проект Persons.vb. потім в меню Вид виберіть Код.
Процедури властивостей ReadOnly і WriteOnly також використовуються, якщо потрібно отримати одне значення властивості і перетворити його в інше значення. Наприклад, розглянемо вік людини. На відміну від імені, вік змінюється з часом. Якщо вік був призначений для класу і лічений рік потому без змін, він буде неправильним.
Щоб запобігти цьому, в класі Persons можна додати дві властивості: властивість WriteOnly BirthYear. що представляє рік народження, який ніколи не змінюється, і властивість ReadOnly Age. яке повертає значення (різниця між поточним роком та роком народження).