Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированное программирование.docx
Скачиваний:
26
Добавлен:
31.08.2019
Размер:
112.85 Кб
Скачать
  1. Данные типа запись, оператор присоединения, правила использования.

 

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

Запись - это структурированный тип, содержащий набор объектов разных типов. Составляющие запись объекты называются ее полями. В записи каждое поле имеет свое собственное имя. Чтобы описать запись, необходимо указать ее имя, имена объектов, составляющих запись и их типы. Общий вид такой:

Type

"имя записи" = Record

"поле 1" : "тип 1";

"поле 2" : "тип 2";

...

"поле n" : "тип n"

End;

Оператор присоединения позволяет осуществлять доступ к полям записи, таким образом, как если бы они были простыми переменными. Его общий вид: With <имя записи> Do <оператор>. Внутри оператора к компонентам записи можно обращаться только с помощью имени соответствующего поля.

Для обращения к полю записи используется составное имя, в котором необходимо указать путь от вершины до нужного поля.

Ввод, вывод и др. операции над записью выполняются для отдельных полей, в соответствии с их типами.

Доступ к полям записи

Его можно осуществить двумя способами.

Указанием имени переменной и имени поля. Например, klass[2].fam, klass[3].sb, klass[1].b4. Поэтому ввод фамилий и оценок учащихся, то есть элементов массива klass, можно задать так:

For i: = 1 To 25 Do

Begin

Readln(klass[i].fam);

Readln(klass[i].b1);

Readln(klass[i].b2);

Readln(klass[i].b3);

Readln(klass[i].b4);

Readln(klass[i].b5);

End;

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

With <имя записи> Do <оператор>.

Внутри оператора к компонентам записи можно обращаться только с помощью имени соответствующего поля.

 

  1. Методы объекта и их реализация с помощью процедур и функций..

Базовым в объектно-ориентированном программировании является понятие объекта. Состояние объекта задаётся значениями его признаков. Объект «знает», как решать определённые задачи, то есть располагает методами решения. Программа, написанная с использованием ООП, состоит из объектов, которые могут взаимодействовать между собой.

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

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

Методы — это процедуры и функции, которые принадлежат объекту. методы описываются внутри объявления объекта и бывают нескольких типов.

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

virtual (виртуальные) — такие методы могут быть переопределены в потомках объекта. Например, если у вас есть объект гараж и метод ворота, то в его потомке этот метод может быть заменен улучшенной версией. Для определения адреса Delphi строит таблицу виртуальных методов, которая позволяет во время выполнения программы определить адрес метода. В такой таблице хранятся все методы текущего объекта и его предка.

Dynamic (динамические) — эти методы схожи с виртуальными, но для определения адреса используется другой способ. Для каждого объекта строится таблица только из его методов. Каждому методу назначается уникальный индекс. В данном случае экономится память, потому что не надо хранить адреса методов предков, но для поиска любого из них тратится намного больше времени.

Message (сообщения) — такие метода реагируют на события операционной системы. Для большинства сообщений ОС Windows в Delphi уже есть специальные обработчики событий, но если вам нужно, чтобы метод реагировал на определенное событие, которого нет у компонента, необходимо определить его вручную.

Abstract (абстрактный) — такой метод будет только объявлен в объекте, а реализации у него не будет. Если в объекте есть хотя бы один такой метод, то он считается абстрактным. Такой объект нельзя использовать.