Использование классов

Создавая окна форм, мы использовали некоторые понятия объектно-ориентированного программирования. Окно формы - эго объект, элементы, расположенные на нем, - это тоже объекты. У каждого объекта есть набор свойств -его характеристик. Например, у каждого окна есть высота и ширина, цвет окна,текст, отображаемый в заголовке окна, и тому подобное. Все это его свойства.Есть также группа определенных процедур и функций, которые работают сэтим окном. В объектно-ориентированном программировании эту группу процедур и функций называют методами.

Итак, мы определились с тем, что есть объекты с присущими им свойствами иметодами. Кроме того, в системе происходят события, которые затрагиваютобъект. Можно заранее позаботиться, как отреагировать на то или иное событие.

Получается, что в процессе создания приложения мы можем наплодить достаточно большое количество объектов. Что же, каждый раз создавать объектзаново? Заново придумывать для него свойства и методы? Можно выйти из положения, если создать для однотипных объектов образец с полным наборомсвойств, методов и событий, которые могут с ним произойти, а дальше для конкретного нужного нам объекта делать с образца копию и в ней менять те свойства, которые нам требуются. Так и поступают. А образец называют классом.

А конкретный объект, скопированный с образца для ваших нужд, называют экземпляром класса.

Разработчики Visual FoxPro 9 создали довольно много стандартных классов.Например, создавая окно формы, мы пользуемся классом Form. Он дает намсразу богатый набор свойств, методов и событий для нашей формы.

На основе стандартных классов можно порождать свои классы с измененными по сравнению с исходными классами характеристиками. Как это сделать?

Программное объявление класса

Рассмотрим на примере:

Команда DEFINE CLASS объявляет класс, имя которого ставится за этимиключевыми словами, на основе класса, имя которого ставится после ключевого слова AS. Класс, на основе которого делается другой класс, называют родительским классом, базовым классом или суперклассом.

До ключевого слова ENDDEFINE располагается описание класса. В нашемпримере мы объявили свойство Name (получается, как обычная переменная) иметод PutMsg (как видите, ничем не отличается от записи процедуры).

Создается объект (lo_Wnd) на основе класса (SuperFrm) при помощи команды CREATEOBJECT.

Для использования метода мы указали его через точку после имени объекта.Если никакие параметры методу не передаются, можно скобки не ставить, однако хороший стиль программирования подразумевает, что вы будете использовать скобки при указании метода, чтобы явно его отличать от свойств объекта.