Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
90
Добавлен:
20.06.2014
Размер:
155.65 Кб
Скачать

9.Организация класса, объекта. Фундаментальные признаки объектно-ориентированного программирования.

Класс – в объект паскаль спец типы содержащие поля, методы и свойства. А делфи это функционально законченные фрагменты программ, служащих образцами для создания подобных себе экземпляров.

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

Компонент – это объект размещаемый на пользовательском интерфейсе приложения или любой объект палитры компонента Делфи – фактически это фрагмент кода.

Type myclass=class(TObject);

В основе классов лежат 3 принципа объектно-ориентированного программирования:

- инкапсуляция

- наследование

- полиморфизм

Класс представляет собой единство 3х Сущностей: поля, методы и свойства, объединение сущностей в одно целое наз инкапсуляция . И. даёт возможность обмена готовыми для работы программные заготовки.

Наследование – любой класс можно породить от родителя , потомок автоматически наследует поля, методы и свойства, и может дополнять их новыми.tobject не имеет полей и свойств, только методы общего назначения. Принцип наследования приводит к разветвлённому дереву классов. Дерево идёт от вершины tobject к потомку.

Type

TChild=class(TParent)

Полиморфизм – свойства классов решать схожие по смыслу проблемы разными способами обеспечивая это перекрытием методов потомка, т е объявить в потомке одноименный метод и реализовать в нём нужные действия. В результате в объектах родители и потомки будут действовать два одноименных метода имеющие разные алгоритмы и придающие объекту разные свойства это и есть полиморфизм. Может быть статическим (на этапе компиляции) и динамические (программой).П. можно достичь виртуализацией. Он позволяет род-им методам обращаться к методам своих потомков.

Составляющие класса: Поля – это инкапсулированные в классе данные, Методы – это инкапсулированные в классе процедуры и функции.

Реализация класса в ОР.

TChild=class(TParent)

ifield:integer;

istr:strig;

……

Procedure rread;

Function f(t:integer);

property

end;

Свойства –это спец механизм класса регулирующий доступ к полям-property

Имеется 4 секции видимости (определяют области видимости элемента описания класса) – определяют зарезервированные слова

(структура описания класса)

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

  2. private- личные – частные описания (личные элементы описания доступны только внутри методов данного класса и в подпрограммах где описан, элемент не доступен даже ближайшим потомкам)

  3. protected – защищенные описания (доступно элементам, методам данного класса и его потомкам не зависимо от модуля в к-ом находится)

  4. public – доступные (не накладываются ограничения на область видимости, перечисляемых в ней полей, методов и свойств, т е эти составляющие можно вызывать из любого модуля программы)

2 метода конструктор и деструктор: 1-распред-т объект в динамической памяти и помещает адрес этой памяти в перменную со стандартным именем Self, которая авт-ки объявляется в классе; 2 –удаляет объект из кучи (освоб дин память). Обращение к констр-ру обязательно до любого обращения к полям и некоторым методам объекта. Констр и дестр являются процедурами, но объявляются с помощью зарезервированных слов.