Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОПП(Лекция5)[2014]

.pdf
Скачиваний:
14
Добавлен:
30.05.2015
Размер:
1.44 Mб
Скачать

Создание пользовательских объектов:Модули классов

Пользовательские классы описываются в специальных

модулях классов;

Имя модуля класса - это имя класса объектов;

После создания модуль класса, можно определять, создавать и инициализировать объекты этого класса с помощью операторов Dim и Set;

Шаг1

Шаг2

События модулей классов

Смодулемклассасвязаныдва события:

Initialize (инициализация);

Terminate(завершение);

СобытиеInitialize возникаетприсозданииновогообъекта данногокласса.

Этособытиереализуетсяпроцедурой

Private Sub Class_ Initialize()

Запускаетсяавтоматическиприсозданииновогообъектакласса.

СобытиеTerminate возникаетпри удаленииобъектаиз памяти. Этособытиереализуетсяпроцедурой

Private Sub Class_ Terminate()

Запускаетсяавтоматическиприудалении объектакласса.

Пример. Создан модуль класса «Drob» для описания класса «Дробь».

Определим два свойства - «числитель» и «знаменатель».

Замечание. Экземпляры этого класса - несокращаемые дроби.

‘Раздел объявлений

Private x As Integer ‘числитель Private y As Integer ‘знаменатель

Методы класса

Private Sub Class_ Initialize()

x=1

y=1

End Sub

‘Собственный конструктор

Public Sub CreateDrob(ByVal a As Integer, ByVal b As Integer) Dim d As Integer

If b=0 Then

MsgBox «Error»: Exit Sub Else

d=nod(a,b) Сокращение дроби x=a/d

y=b/d End If End Sub

Функции доступа к закрытым параметрам

Функции доступа к закрытым параметрам

Function числитель() As Integer

Function числитель() As Integer

числительчислитель= x = x

End Function

End Function

Function знаменатель() As Integer

знаменатель = y End Function

ПримерИспользованиекласса«Дробь»:

Sub Primer_Drob()

Dim dr1 As Drob, Dim dr2 As Drob ‘Только описания,

объекты не создаются!

Set dr1 = New Drob Создание нового экземпляра dr1=1/1

Call dr1.CreateDrob(2,4) Способ 1 вызова метода класса

Set dr2 = New Drob

dr2.CreateDrob a:=6, b:= 9 Способ 2 вызова метода класса

End Sub

Работа со значениями открытых свойств объектов

Способ 1. Пусть описание свойств класса «Дробь» имеет вид

Public x As Integer

‘числитель

Public y As Integer

‘знаменатель

Обращение к свойствам свойств:

dr.x=5

dr.y=10

(dr - экземпляр класса).

Способ 2. Работа со значениями свойств с помощью специальных процедур-свойств:

Property Let - определение значения,

Property Get - получение значения,

Property Set - установка ссылки на объект.

Эти процедуры позволяют определить свойства открытой части класса и обеспечить к ним доступ пользователей.

Оператор Property Let.

Используется для установки значения свойства:

[Public|Private] Property Let имя_свойства

([список_параметров,] значение)

[тело процедуры]

End Property

Список параметров необходим, если значением свойства является массив.

Значение - описание переменной, через которую передается значение свойства.