Основы объектно-ориентированного программирования: Методические указания к выполнению лабораторной работы по дисциплине «Информатика», страница 6

Ударное воздействие механического молота

Рисунок 1. Виды металлических заготовок и направление удара

3.1.  Разработка объектов

В качестве ключевого понятия, используемого в ООП, как было уже сказано ранее, выступает понятие «объекта». Объект - это осязаемая сущность, которая четко проявляет свое поведение. При помощи объектов моделируют характеристики и поведение частей реального мира, в котором мы живем. В зависимости от постановки решаемой задачи осуществляется выбор тех или иных частей реального мира в качестве объектов предметной области решаемой задачи.

В нашем случае объектом является заготовка (это осязаемая сущность), которая, по условию задачи, деформируется под воздействием молота (это четкое проявление поведения). Кроме поведения объект, как осязаемая сущность, имеет свойства.

Для описания свойств реальной заготовки используются множество ее характеристик: вес, цвет, плотность, высота, материал, форма основания, назначение, стоимость, имя владельца и т.д. Для решения задачи следует выбрать только те свойства объекта, которые оказывают существенное влияние на поведение заготовки под ударным воздействием механического молота. Среди таких свойств можно назвать: материал изготовления (определяет степень реакции на воздействие); высоту и размер основания заготовки (изменяются вследствие удара молота).

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

Из рисунка 2 можно заметить, что в вершину иерархии помещен объект «Абстрактная заготовка», обладающий общими свойствами и   методами,   а   конкретные   объекты «Параллелепипед» и «Цилиндр» наследуют их, а также имеют собственные. Форма основания заготовки закодирована в названии объекта, поэтому наследуемые геометрические параметры для каждого потомка объекта «Абстрактная заготовка» будут иметь различные смысловые значения: для «Параллелепипеда» - длина стороны квадрата, для «Цилиндра» - диаметр круга.

В DELPHI понятие класса соответствует термину «объект». От объекта может быть образовано множество экземпляров объекта. Так например, от объекта «Цилиндр» можно образовать следующие конкретные экземпляры: «Стальная заготовка цилиндрической     формы»,     «Свинцовая     заготовка цилиндрической формы» и т.д. Все экземпляры обладают различными  свойствами,  которые заранее определены (описаны) объектом «Цилиндр», но будут деформироваться под воздействием механического молота, т.е. все они будут иметь одинаковое поведение, обусловленное исходным объектом. Во время работы программы мы всегда манипулируем  с  конкретными  классами  объектов, количество которых практически не ограничено.

 


Рисунок 2 – Иерархическая структура объектов-заготовок

3.2.  Реализация объектов

Ранее было сказано, что описание объектов производится в разделе описаний пользовательских типов, т.е. после ключевого слова tуре. Общепринятым является первым символом в названии объекта использовать символ Т, например, TPoint, TColorи т.д. Свойства объекта (их еще называют информационными полями объекта) описываются как переменные, а действия (или методы объекта) - как подпрограммы-процедуры.

Для описания высоты и размера основания заготовки до и  после удара  молотом  будем  использовать  четыре вещественных числа (тип rеаl). Для задания материала можно использовать, например, целое число (тип Integer) и затем помнить, например, что «1» - это медь, а «2» - алюминий и т.д. Чтобы избежать недоразумений с неоднозначно интерпретируемыми значениями чисел натурального ряда, предлагаем для задания типа   материала   изготовления   заготовки   использовать перечисляемый тип, заданный следующим образом: