![](/user_photo/2706_HbeT2.jpg)
- •Федеральное бюджетное государственное образовательное учреждение высшего профессионального образования «Тульский государственный университет»
- •230100 Информатика и вычислительная техника
- •Тула 2011 г.
- •Содержание
- •Основы объектно-ориентированного подхода
- •Понятие класса
- •Три принципа объектного программирования
- •Наследование
- •Полиморфизм
- •Инкапсуляция
- •Сообщения
- •Разработка структуры объекта
- •Поля и свойства
- •Параметры-процедуры
- •Использование объектов в программе
- •Построение графиков
Сообщения
Кроме трех фундаментальных возможностей объектно-ориентированного программирования, в среде Delphi реализована новая характеристика объекта - возможность обработки так называемых сообщений (или событий), получаемых из Windows или самой программы. Этот принцип лежит в основе работы визуальных компонентов Delphi, которые обрабатывают различные события, возникающие в процессе выполнения программы.
Разработка структуры объекта
Главная функция разработчика - создавать вещи,
которые трудно производить и невозможно обслуживать.
Из законов Мэрфи
Итак, объект в программировании – набор переменных разного типа, называемых полями (как и у записи), и процедур или функций, называемых методами (methods), которые выполняют определенные действия над свойствами. Например, объект "регулируемый асинхронный электродвигатель" может иметь свойства "мощность", "частота вращения", "момент на валу", "напряжение питания", и методы "запустить двигатель", "сменить частоту вращения", "остановить двигатель".
Первый этап – выделить характерных свойства и методы реального объекта. Для электродвигателя примем следующее:
Свойства |
Методы |
Потребляемая мощность |
Включить двигатель |
Текущая частота вращения |
Изменить частоту вращения |
Направление вращения |
Остановить двигатель |
Номинальная частота вращения |
Изменить направление вращения |
|
Аварийный останов |
Методы "остановить двигатель" и "Аварийный останов" отличаются тем, что в первом случае напряжение питания снижается в плавно, а во втором – мгновенно.
На втором этапе нужно дать названия полям, в которых хранятся свойства, и методам, для каждого свойства выбрать подходящий тип данных, а для метода – установить, какая информация необходима для его выполнения. Разумеется, все названия должны даваться по правилам языков программирования – английскими буквами, без пробелов и т.д. Настоятельно рекомендуется использовать правильные английские слова:
Свойство реального объекта |
Название поля |
Тип данных |
Потребляемая мощность |
Power |
REAL |
Текущая частота вращения |
RPM |
WORD |
Направление вращения |
Direction |
Tdir |
Сигнал аварийного останова |
BR |
Boolean |
Номинальная частота вращения |
Nominal |
WORD |
Свойство BR будет устанавливаться в TRUE при подаче команды «Авария».
А как быть с типом данных направления вращения? Конечно, можно договориться, что, к примеру, "1" или True означает вращение по часовой стрелке, а "2" или False – против часовой, но это неудобно.
Нормальные люди поступают следующим образом: вводят свой перечислимый тип данных TDir:
TYPE TDir=(CLOCKWISE, COUNTERCLOCKWISE);
Обратите внимание, что название типа данных (TDir) может быть выбрано произвольно. Оно никак не связано с названием переменной Dir. Просто обычно названия типов начинают с буквы "Т", чтобы не путать их с именами переменных. Аналогично классу нашего объекта присвоим название TMotor.
Теперь в программе можно создавать переменные типа Tdir, которые принимают только два значения: CLOCKWISE и COUNTERCLOCKWISE.