Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OAP(теория).doc
Скачиваний:
49
Добавлен:
15.02.2016
Размер:
687.62 Кб
Скачать

Виды классов

  • Базовый (родительский) класс

  • Производный класс (наследник, потомок)

  • Абстрактный класс

  • Интерфейс

Классы в языке Object Pascal (среда Delphi)

На языке Delphi класс описывается следующим образом:

TMyClass = class(TObject)

private

{Описанные в этой секции элементы не доступны извне (за пределами класса, но доступны в пределах модуля).}

{Здесь обычно находятся поля класса.}

protected

{Описанные в этой секции элементы доступны только классу и всем его потомкам.}

public

{Описанные в этой секции элементы доступны всем.}

published

{Описанные в этой секции элементы доступны всем и отображаются в Object Inspector'e.}

end;

  • TMyClass — имя класса;

  • class — ключевое слово, начинающее определение класса;

  • TObject — класс-предок, если есть наследование;

  • private, protected, public, published — ключевые слова, обозначающие секции областей доступа.

2.Методы класса

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

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

Метод, объявленный в классе, может вызываться различными способами, что зависит от вида этого метода. Вид метода определяется модификатором, который указывается в описании класса после заголовка метода и отделяется от заголовка точкой с запятой: virtual (виртуальный метод); dynamic (динамический метод) и др.

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

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

Статические – все методы по умолчанию. При переопределении метода в классе – наследнике то отменятся родительский метод для всех объектов этого класса.

Виртуальный и динамический методы не имеют ничего общего с методами с такими же именами в классах – наследниках. Очень часто применяется полиморфизм – когда создается виртуальный метод для объектов базового класса. При объявлении таких методов добавляются ключевые слова dynamic или virtual, которые завершают объявление метода. Для перегрузки метода ставим слово override.

 Если виртуальный или динамический метод не определен в объявленном классе, то такой метод называют Абстрактный. Такой метод будет перегружен в классах – наследниках. Из этого следует, что в том классе, где он перегружен, можно его вызывать. Ключевое слово – abstract. Перегрузка метода – overload, а для виртуального метода – добавляется слово reintroduce

3.Свойства класса и поля. Отличие свойства класса от полей записи.

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

Согласно принятому обозначению в Delphi имена полей должно начинаться с буквы F (Field – поле), а имена классов с буквы T.

Изменение значений полей обычно выполняется с помощью методов и свойств объекта.

Свойства реализуют механизм доступа к полям. Каждому свойству соответствует поле, содержащее значение свойства, и два метода, обеспечивающих доступ к этому полю.

Описание свойства начинается со слова property, при этом типы свойства и соответствующего поля должны совпадать.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]