Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.doc
Скачиваний:
16
Добавлен:
15.11.2018
Размер:
435.2 Кб
Скачать

29. Дайте понятие класса в языке программирования Delphi. Приведите отличие классов от других типов. Дайте понятие о структуре класса, его составляющих: полях, методах и свойствах.

Разработайте фрагмент программы создания объекта TGraphObject, в рамках которого будут инкапсулированы поля и методы, общие для всех остальных объектов.

Классы в Delphi

Классами в Delphi называются специальные типы, которые содержат поля, методы свойства.

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

Описание классов разделено на две части — интерфейсную («заголовочную») и описательную. В интерфейсной части располагается заголовок класса, в котором указываются название класса, а также описания свойств и заголовков методов. В описательной части располагается программный код (реализация) методов, заголовки которых указаны в интерфейсной части описания класса.

Интерфейсная часть описания класса выглядит она следующим образом:

Туре

<Имя класса> = class {Заголовок описания}

<Имя свойства 1>: <Тип свойства 1>; {Описание свойства 1}

<Имя свойства М>: <Тип свойства N>; {Описание свойства N}

Заголовок метода 1>; {Описание метода 1}

Заголовок метода М>; {Описание метода М}

End;

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

Procedure <Имя класса>.<Имя метода>(<Список параметров>);

или для методов-функций:

Function <Имя класса>.<Имя метода>(<Список параметров>):

<Тип значения>;

Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (опубликованные), private (закрытые), protected (защищенные), public (открытые) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем методы и свойства.

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

Инкапсулированные в классе процедуры и функции называются методами. Они объявляются так же, как и обычные подпрограммы.

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

type

TGraphObj = object

Private {Поля объекта будут скрыты от пользователя }

x,y: integer;

Color: Word; {Цвет фигуры}

Public {Методы объекта будут доступны пользователю}

Constructor Init(aX,aY: Integer; aColor: Word);

{Создает экземпляр объекта)

Procedure Draw(aColor: Word); Virtual;

{Вычерчивает объект заданным цветом aColor}

Procedure Show;

{Показывает объект — вычерчивает его цветом Color}

Procedure Hide;

{Прячет объект — вычерчивает его цветом фона}

Procedure MoveTo(dX,dY: Integer);

{Перемещает объект в точку с координатами X+dX и Y+dY}

end; {Конец описания объекта TGraphObj}

30. Дайте определение компонента. Опишите основные компоненты Delphi, предназначенные для отображения статичного текста (Label, StaticText) и компоненты, предназначенные для ввода и вывода пользовательского текста (Edit, LabelEdit, MaskEdit, Memo, RichEdit).

Разработайте программу на языке программирования Паскаль для определения наименьшего элемента одномерного целочисленного массива.