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


Создание класса "Личность" - часть 3


Private Function ПоследняяБуква(ByVal W As String) As String 'Внутренняя функция: возвращает в верхнем регистре 'последнюю букву слова W ПоследняяБуква = UCase(Right(W, 1)) End Function

Public Property Get ВашеИмя() As String ВашеИмя = Имя End Property

Public Property Let ВашеИмя(ByVal vNewValue As String) Имя = vNewValue End Property Public Property Get ВашеОтчество() As String ВашеОтчество = Отчество End Property

Public Property Let ВашеОтчество(ByVal vNewValue As String) Отчество = vNewValue End Property

Public Property Get ВашаФамилия() As String ВашаФамилия = Фамилия End Property

Public Property Let ВашаФамилия(ByVal NewValue As String) Фамилия = NewValue End Property

Public Property Get ВашаДатаРождения() As Date ВашаДатаРождения = ДатаРождения End Property

Public Property Let ВашаДатаРождения(ByVal NewValue As Date) ДатаРождения = NewValue End Property

Private Sub Class_Initialize() Имя = "Адам" Фамилия = "Человек" ДатаРождения = #1/1/100# End Sub

Пример 4.1.

Прокомментируем этот довольно длинный текст.

  • Первое, что мы сделали, - перешли на русский язык при задании имен свойств и методов.
  • С точностью до имен все свойства класса Личность совпадают с полями типа Person. Кстати, мы сделали все свойства закрытыми (Private), и теперь вне класса нет прямого доступа к его полям (свойствам).
  • В класс Личность добавлено 5 общих методов: InitPerson, PrintPerson, CopyPerson, WhoIs, SayWhoIs и по паре методов Get и Let на каждое закрытое свойство. В классе есть и закрытая для внешнего использования функция "ПоследняяБуква", и обработчик события Initialize.
  • Метод Init в том или ином виде должен быть определен в каждом классе. Это первый вызываемый метод объекта. Прежде чем начать работу с объектом, его нужно инициализировать. В нашем классе эту работу и делает метод InitPerson.
  • Метод Print также присутствует почти в каждом классе - нужно же распечатать информацию об объекте! - в PrintPerson вызывается метод WhoIs.
  • CopyPerson - еще один общий, часто необходимый метод, позволяющий реализовать настоящее присвоение, когда копируется не ссылка, а значения полей класса, что позволяет иметь не две ссылки на один объект, а два идентичных объекта.
  • Булева функция WhoIs - метод, специфический для нашей задачи.


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