ОПП(Лекция5)[2014]
.pdfСоздание пользовательских объектов:Модули классов
Пользовательские классы описываются в специальных
модулях классов;
Имя модуля класса - это имя класса объектов;
После создания модуль класса, можно определять, создавать и инициализировать объекты этого класса с помощью операторов 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
Список параметров необходим, если значением свойства является массив.
Значение - описание переменной, через которую передается значение свойства.