Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы 27-35 по языкам программирова....docx
Скачиваний:
7
Добавлен:
15.04.2019
Размер:
30.09 Кб
Скачать

Вопрос №28

Модуль – это замкнутая программа, которую можно вызвать из другого модуля и самостоятельно откомпилировать. Другое определение: программный модуль – это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса.

Основная причина по которой разрабатываемое ПО разбивается на модули – борьба со сложностью ПО.

Принципы модульного программирования позволяют получать программные комплексы минимальной сложности. Эти  принципы следующие:

а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).

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

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

unit<идентификатор>; interface uses<список_модулей>;{Необязателен} {глобальные_описания} implementation uses<список_модулей>;{Необязателен} {локальные_описания} {реализация_процедур_и_функций} begin {код_инициализации} end.

Вопрос №29

При объектно-ориентированном подходе программа представляет собой описание объектов, их свойств (или атрибутов), совокупностей (или классов), отношений между ними, способов их взаимодействия и операций над объектами (или методов).

Суть объектно-ориентированного подхода к программированию заключается в трех принципах: инкапсуляции, наследовании и полиморфизме.

Вопрос №30

Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.( Класс — описание (абстракция), которое показывает, как построить существующую во време­ни и пространстве переменную этого класса, называемую объектом.)

Объект - особый опознаваемый предмет, блок или сущность (реальная или абстрактная), имеющая важное функциональное назначение в данной предметной области.

Для объявления конструктора используется зарезервированное слово constructor, после которого идет имя конструктора и параметры, если необходимо. Конструктор возвращает указатель на экземпляр класса. У конструктора Tobject имя Create, поэтому у всех потомков этого класса есть конструктор Create, хотя, у некоторых классов есть и другие конструкторы с другими именами, например у обработчиков исключений. В теле конструктора Вы можете вызвать конструктор предка для инициализации закрытой части предка значениями по умолчанию, например:

unit MyUnit;

interface

Type TmyClass = class(TComponent) … public constructor Create(AOwner: TComponent); override; // перегружаем конструктор предка … end;

implementation

Constructor TmyClass.Create(AOwner: TComponent); Begin Inherited Create(Aowner); // Вызов конструктора предка … // Дальнейшая инициализация объекта End;

Для уничтожения объекта служит деструктор. Деструктор объявляется с помощью зарезервированного слова destructor, после которого идет имя деструктора. Деструктор ничего не возвращает и не имеет параметров. Я советую Вам вместо прямого вызова деструктора использовать метод Free. Этот метод есть у всех классов в Delphi, т.к. наследуется от Tobject. Этот метод сначала проверяет неравенство указателя на класс nil, а затем только вызывает Destroy. Это более безопасный способ уничтожить объект.

unit MyUnit;

interface

Type TmyClass = class(TComponent) … public constructor Create(AOwner: TComponent); override; // перегружаем конструктор предка destructor Destroy; override // Перегружаем деструктор предка … end;

implementation … destructor TmyClass.Destroy; Begin

… // Уничтожение объекта Inherited Destroy; // Вызов деструктора предка, для уничтожение закрытых полей предка End;