Основы офисного программирования и язык VBA


Методы


Не будем повторяться. О методах было сказано уже достаточно. Любая процедура (Sub) или функция (Function), описанная в разделе методов класса, является его методом. Напомним синтаксис методов класса:

[Private | Public | Friend] [Static] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub [Public | Private | Friend] [Static] Function name [(arglist)] [As type] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function

Роль всех ключевых слов в этих определениях уже пояснялась, чуть позже мы подробнее скажем о спецификаторе Friend, который могут иметь методы класса. Сейчас же отметим, что почти каждый класс, независимо от его специфики имеет некоторый "джентльменский" набор методов. В него входит:

  • Один или несколько конструкторов класса, в том числе конструктор по умолчанию, заданный обработчиком события Initialize.
  • Обычно, по паре процедур - свойств, определенных для каждого свойства класса.
  • Метод, задающий печать свойств класса.
  • Метод, позволяющий в диалоге с пользователем определять значения свойств класса, - своеобразный конструктор.
  • Остальные методы, определяющие специфику класса.

Вернемся к проектированию класса Rational. Большую часть джентльменского его набора мы уже определили. Специфика этого класса определяется операциями над рациональными числами. Ограничимся четырьмя основными операциями - сложением, вычитанием, умножением и делением. Добавим к ним еще и метод печати дробей. Вот тексты этих методов, заканчивающих определение нашего класса:

Public Function Plus(a As Rational) As Rational Dim d As Integer, u As Integer, v As Integer Dim R As New Rational

u = m * a.Знаменатель + n * a.Числитель v = n * a.Знаменатель d = nod(u, v) R.Числитель = u \ d R.Знаменатель = v \ d Set Plus = R End Function

Public Function Minus(a As Rational) As Rational Dim d As Integer, u As Integer, v As Integer Dim R As New Rational

u = m * a.Знаменатель - n * a.Числитель v = n * a.Знаменатель d = nod(u, v) R.Числитель = u \ d R.Знаменатель = v \ d Set Minus = R End Function




Начало  Назад  Вперед



Книжный магазин