Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
28_-_2_.doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
2.83 Mб
Скачать

12. Объектовый тип. Основные понятия.

Объектовый тип в паскале похож на комбинированный тип (класс).

type

point=object

x,y:integer;

visible:Boolean;

...

Объектовый тип может содержать подпрограммы. Подпрограммы, которые описаны в объектовом типе(классе) – это методы этого типа(класса). При описании класса задаётся описание полей, а потом описание методов:

type point=object

x.y:integer;

visible:Boolean;

procedure create(a,b:integer);

procedure switchon;

procedure switchoff;

procedure move(dx,dy:integer);

function getx:integer;

function gety:integer;

end;

Задание значений полям только через методы этого класса.

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

13. Наследование и переопределение в объектовых типах.

Наследование является вторым основным важным классом, который позволяет при создании нового класса использовать в качестве основы описанный ранее класс.

Объектно-ориентированный подход позволяет создать новый класс как потомок ранее описанного класса.

type circle=object=(point);

Класс, созданый на основе предыдущего, называется потомок. Класс, на основе которого создан новый класс, называется предок.

Класс потомок автоматически получает все поля и методы своего предка.

circle=object=(point);

radius:integer;

procedure create(a,b,r:integer);

procedure switchon;

procedure switchoff;

function getr:integer;

end;

Замена одного из метода другим методом называется переопределение метода. Переопределять можно только методы, поля нельзя.

one point:=onecircle;

onecircle:=one point;

Присваивать можно только от предка к потомку.

14. Виртуальные методы в объектах.

Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.

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

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

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

constructor circle.create

Последним методом, который обрабатывается должен быть деструктор.

destructor …