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


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


Часть из этих операций уже упомянута, другие ясны из контекста. Нам кажется разумным привести с самого начала полное описание класса, а потом уже, когда полная картина ясна, переходить к деталям. Создав модуль класса "Личность, мы поместили туда следующий текст:

Пример 4.1.

(html, txt)

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

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


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



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