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

Объектно-ориентированное программирование

1. Основные понятия объектно-ориентированного программирования

Pascal фирмы Borland стал объектно-ориентированным в версии 5.5. В Object Pascal модель объектов языка преобразована коренным образом. Модель объектов построена на принципах ООП, которые определяют правила использования объек­тов. Delphi поддерживает сразу 2 модели: старую (для совместимости со старыми программами, написанными, например, на Turbo Pascal 5.5, 6.0 или 7.0) и новую, ориентированную на среду визуального программирования. Для объявления объек­тов старой модели используется ключевое слово Object. Вся структура приложений Delphi базируется на иерархии объектов на основе классов. Концепцию ООП характеризует следующее:

  1. Оно использует объекты как строительные блоки.

  1. Объектный тип - это совокупность элементов данных и методов (для опера­ций над данными), скомпонованных вместе для удобства использования; объединение данных и подпрограмм их обработки называется инкапсуляцией.

  1. Каждый объект - переменная - это представитель (экземпляр) определенного класса.

  1. Классы связаны друг с другом соотношениями наследования, с помощью ко­торых объекты могут расширяться; при этом описания существующих объек­тов могут многократно использоваться при описании новых объектов; наследование предоставляет механизм моделирования отношений реального мира.

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

2. Определение класса. Инкапсуляция. Синтаксис и программирование свойств

Суть ООП составляют 3 принципа: инкапсуляция, наследование и полимор­физм. Инкапсуляция означает объединение данных и действий над ними в одном объектном типе.

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

Class - это объектный структурированный тип, который может иметь в своем составе поля, свойства и методы.

Например:

Туре

TMyObject = class (TObject)

MyField : integer; // - поле;

Color: TColor; // - свойство;

Function MyHethod : integer; // - метод;

end; // - конец объявления объекта

Класс инкапсулирует (encapsulate) данные и код, из совокупности которых формируются представители (member - члены) класса. Класс может быть на­следником (inherit) другого класса. Например, класс TForml наследник класса TForm, который поддерживает Delphi. Таким образом, класс TForml является потомком (descendant - происходит от) класса TForm.

Тексты на Object Pascal представляются в виде модулей (pas - файлов). Клас­сы могут быть объявлены в секции интерфейса (interface) или в секции реализа­ции (implementation) модуля. Определение классов внутри подпрограмм и дру­гих блоков не допускается.

Интерфейс типа class - это совокупность всех элементов описания класса: полей, методов и свойств.

Объект или экземпляр объекта - это конкретный экземпляр, созданный в со­ответствии с его объявлением с помощью класса (class).

Объект может содержать другой объект. Например, объект формы может содержать объект кнопки. В этом случае объект-владелец ответствен за создание и уничтожение объекта, который он содержит.

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

Для использования переменной нового типа в программе ее надо объявить. Переменная типа класс - это переменная объектного типа и называется экземп­ляром класса или объектом. Например:

Var AMyObject : TMyObject;

В Object Pascal объекты (экземпляры классов) могут быть только динамическими т. е. в приведенном примере переменная AMyObject является указателем, содержащим адрес объекта. Любая переменная объектного (классового) типа есть указатель. Причем форма обращения к объектам в Object Pascal отличается от формы обращения к динамическим объектам языка Pascal. Для обращения к полям и методам объекта в Object Pascal не надо использовать символ ‘^’. Например, для обращения к полю MyField и методу MyMethod надо писать:

AMyObject.MyField := AMyObject.MyMethod(Data); //- в Object Pascal;

вместо:

AMyObject^.MyField := AMyObject^.MyMethod(Data); // - в Pascal.