Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_16-18.docx
Скачиваний:
5
Добавлен:
06.11.2018
Размер:
39.61 Кб
Скачать

6.3. Члени класів

Членами класів є поля, методи, властивості та події, оголошені в області видимості класу.

Поля

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

Приклад оголошення полів:

Dim a As Intl6 ' По умолчанию имеет модификатор Private, инициализируется нулем

Public al As String = "sample" ' Инициализация в момент объявления

Shared a2 As Double ‘Поле належить класу

Методи

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

Мова Visual Basic. NET підтримує перевантаження функцій, тобто дозволяє створювати функції з однаковим ім'ям, але з різними параметрами. Більш точно - перевантаження функції ведеться по її сигнатурі, тобто за типом параметрів. Таким чином, можна оголосити декілька функцій з однаковим ім'ям, але різними параметрами.

Visual Basic. NET дозволяє передавати параметри за посиланням і за значенням. При цьому слід мати на увазі, що передача об'єктів фактично означає передачу посилання на них, тому функція, що викликається буде мати доступ до об'єкта.

Visual Basic. NET дозволяє оголошувати параметри методів за умовчанням.

Приклад оголошення методів:

' Закрытый (Private) метод класса

Shared Function Fund(ByVal par As String) As String

Return 5

End Function

' Открытый метод с параметром по умолчанию

Public Sub Sub2(ByVal par As Integer, Optional ByVal p As Int16 = 0)

End Sub

' Перегруженная версия метода с другим типом параметра

Public Sub Sub2(ByVal par As String)

End Sub

Властивості

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

Структура:

Property Name() As Type

‘Читання

Get

Return Name1

End Get

‘Запис

Set(ByVal value As Integer)

Name1 = value

End Set

End Property

Розглянемо наступний приклад:

Private humanAge As Integer

Private humanName As String

Private humanNick As String

' Возраст

Public Property Age() As Integer

Get

Return humanAge

End Get

Set(ByVal value As Integer)

If value < 0 Or value > 200 Then

Throw New ArgumentException("Age must be between 0" + _

" and 200 years")

End If

humanAge = value

End Set

End Property

' Имя

Default Public Property Name(ByVal NickName As Boolean) As String

Get

If NickName Then

Return humanNick

Else

Return humanName

End If

End Get

Set(ByVal value As String)

If NickName = True Then

humanNick = value

Else

humanName = value

End If

End Set

End Property

Також властивість можна оголошувати за замовчуванням за допомогою модифікатора Default . Це дозволить звертатися до данлї властивості, не вказуючи її імені.

Можна зробити так, щоб властивість було доступно лише для читання або тільки для запису. Для цього досить опустити один з блоків Get або set, вказавши при цьому слова Readonly або writeonly (Readonly, якщо є тільки блок Get, і writeoniy, якщо є тільки блок set).

Події

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

Для оголошення події на які будуть підписуватись класи використовується ключове слово Event:

Event EventName (Eventargumet)

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

AddHandier classname.EventName, AddressOf SubName

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]