Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (принципы объектно–ориентированного программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.07.2023

Просмотров: 256

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Метод write, называемый методом записи, устанавливает значение некоторого поля, а метод read – выполняет чтение значения поля.

Перед описанием свойства в классе используется ключевое слово property, означаемое свойство. Сначала записывается имя свойства, затем тип свойства, после чего перечисляются имена всех методов, которые обеспечиваю доступ к значению некоторого свойства. За словом read идет имя метода, которое обеспечивает чтение свойства, за словом write следует имя метода, который записывает значение свойства[21].

Рассмотрим пример описание класса

Type

Tcountry:string[20];

Ttown:string[20];

Tstreet:strring[30];

Tflat:integer;

TTAddress=class

Private

FCountry: Tcountry; // значение свойства Country

Ftown: Ttown; // значение свойства Town

FStreet: Tstreet; // значение свойства Street

FFlat: Tflat; // значение свойства Flat

Constructor.Create(Address: TAddress);

Procedure Pokaz;

Function GetCountry: TCountry;

Function GetTown: TTown;

Procedure SetStreet(NerStreet: TStreet);

Public

Property Street: TStreet;

read GetStreet;

write SetStreet;

end;

При выполнении программы, чтобы установить значение некоторого свойства, нет необходимости использовать оператор установки свойств для объекта, достаточно применение оператора присваивания свойству некоторого значения[22]. К примеру, для присвоения значения свойству town объекта Address можно записать[23]

Address.town:=’Москва’;

Этот оператор будет перетранслирован в вызов метода:

Address.town(’Москва’);

На первый взгляд создается впечатление, что в программе применение свойств не отличается от применения полей объекта. Однако, свойство и поле объекта имеет принципиальное отличие: когда происходит присвоение и чтение значение некоторого свойства, будет автоматически вызвана процедура, выполняющая определенную работу.

Методы свойства в программе также могут выполнять дополнительные задачи. Так, применяя метод, можно проверять правильность присваиваемых значений, устанавливать значение связанных полей, вызвать другую процедуру[24].

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

Если попытаться присвоить новое значение свойству, которое предназначено только для чтения, приведет к ошибке при выполнении компиляции программы[25].


Изменение значения свойства, которое защищено от записи, возможно при инициализации объекта[26].

Рассмотрим методы класса TTAddress, которые позволяют создать объект класса TTAddress и получить доступ к его свойствам.

// Конструктор объекта TTAddress

Construcror TTAddress.Create(Address: TAddress);

Begin

FAddress:=Address;

End;

// Метод получения значения свойства Address

Function TTAddress.GetAddress;

Begin

Result:=FAddress;

End;

// метод изменения значения свойства Town

Procedure TTAddress.SetTown(NewTown:TTown);

Begin

if FTown =’’ then FTown:=NewTown;

end;

Описанный выше конструктор выполняет создание объекта и установление значения поля FAddress, которое определяет значение свойства Address.

Для создания объекта класса TTAddress и задания его свойств, могут быть, например, следующими[27]:

people:=TTAddress.create(‘Петров’);

people.Town:=’ Москва’;

1.5. Понятие наследования

Объектно–ориентированное программирование дает возможность создавать новые классы при помощи добавления полей, свойств и методов, для уже существующих классов[28].

Указанный процесс получения новых классов получил название порождения. При этом новый класс получает (наследует) свойства и методы от своего родительского (базового) класса[29].

При объявлении некоторого класса–потомка указывается класс его родителя.

1.6. Понятие области видимости

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

Существуют несколько директив видимости, рассмотрим их более подробно.

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

2) Public. Описанные в данном разделе элементы являются доступными из всех процедур и могут использоваться в любом месте программы.


3) Protected. Те элементы класса, которые объявляются в защищенном (protected), которые доступны только в классах, которые порождены от исходного класса. В данном разделе помещаются элементы, которые важны только для определенного класса, а также его потомков. В секции protected помещаются методы класса.

4) Published. Все поля, свойства, а также методы, которые описаны в разделе Published носят название опубликованных. Область видимости, расположенных в данном разделе совпадает с областью видимости общедоступных описаний. Отличие от общедоступных описаний состоит в том, что информация о них становится видна через Инспектор объектов. Если включена директива {$M+}, то все описания, идущие после заголовка класса, становятся опубликованными[31].

5) Automated. Те элементы класса, которые объявлены в данном разделе носят название автоматических. Они имеют видимость, аналогичную общедоступным операциям. Но в отличии от общедоступных, для автоматических генерируется дополнительная информация, используемая при реализации механизма OLE. Применение данной директивы целесообразно при объявлении класса TAutoObject[32].

1.7. Понятие полиморфизма и виртуальных методов

Под полиморфизмом понимается возможность применения одинаковых имен методов, которые входят в разные классы. При полиморфизме обеспечивается использование именно метода, соответствующего классу объекта[33].

ВЫВОД. Рассмотренное в первой главе позволяет получить представление об основах объектно–ориентированного подхода, применяемого при проектировании информационных систем.

2. Примеры применения объектно–ориентированного программирования

2.1. Пример 1 Тестирующая программа, реализованная на Borland Delphi

2.1.1. Постановка задачи

Разработать приложение, позволяющее выполнять пример психологического тестирования


2.1.2. Главная форма (Form1)

Вид главной формы в режиме конструктора показан на рисунке 1.

Рисунок 1 – Вид главной формы приложения (Form1)

Описание элементов главной формы приложения приведено в таблице 1.

Таблица 1 – Описание элементов главной формы

Имя элемента

Тип

Назначение в программе

Image1

TImage

Для вывода картинки к вопросу

Label1

TLabel

Вывод пояснения требуемого действия

MainMenu

TMainMenu

Главное меню приложения

Next

TButton

Кнопка для перехода к следующему вопросу

RadioOtvet1

TRadioButton

Выбор первого варианта ответа

RadioOtvet2

TRadioButton

Выбор второго варианта ответа

RadioOtvet3

TRadioButton

Выбор третьего варианта ответа

Vopros

TRichEdit

Вывод текста вопроса

2.1.3. Форма результатов теста (result)

Вид формы результатов теста приведен на рисунке 2.

Рисунок 2 – Вид формы результатов теста

Описание элементов главной формы приложения приведено в таблице 2.

Таблица 2 – Описание элементов формы результатов теста

Имя элемента

Тип

Назначение в программе

Button1

TButton

Кнопка для завершения работы

ItogoA

TLabel

Вывод количества ответов типа А

ItogoB

TLabel

Вывод количества ответов типа Б

ItogoV

TLabel

Вывод количества ответов типа В

Label1

TLabel

Вывод текста «Итого»

RichEdit1

TRichEdit

Многострочное поле для вывода пояснений

StringGrid1

TStringGrid

Таблица для вывода ответов на каждый вопрос

2.1.4. Модуль обработчиков главной формы

Текст модуля обработчиков главной формы приведен в Приложении 1.


2.1.5. Модуль обработчиков формы результатов

Текст модуля обработчиков формы результатов приведен в Приложении 2.

2.1.6. Результаты работы программы

При запуске приложения, открывается главное окно, показанное на рисунке 3.

Для начала теста необходимо выбрать пункт меню Тест → Начать тест.

Вид вопроса без графического пояснения показан на рисунке 4.

Рисунок 3 – Начальное окно приложения

Рисунок 4 – Вид вопроса без графического пояснения

Если для вопроса имеется графическое пояснение, то вопрос будет выглядеть, как показано на рисунке 5.

Рисунок 5 – Вид вопроса с графическим пояснением

После окончания теста, будет выдано окно со статистикой, как показано на рисунке 6.

Рисунок 6 – Результаты тестирования

По полученному результату можно сделать вывод, что у тестируемого недостаточно развит тип А, гармонично развит тип Б и в «избытке» тип В.

2.2 Пример 2 Вычисление значения функции

2.2.1. Постановка задачи

Вычислить и напечатать значение функции Y = f1 + f2 + f3 + f4. Значение аргумента x задать с клавиатуры. Значения A, B, C, D задать с клавиатуры при помощи оператора присваивания. Значения α, β, γ задать в разделе констант.

Таблица 3 – Исходные данные к примеру 2

f1

f2

f3

f4

=

2.2.2. Алгоритм решения задачи

На рисунке 7 показан алгоритм вычисления функции.

Рисунок 7 – Алгоритм решения задачи