Объектно-ориентированный подход (ООП) к проектированию и разработке ПО: сущность ООП, объектный тип данных, переменные объектного типа, инкапсуляция, наследование, полиморфизм, классы и объекты.
Объектно-ориентированное программирование (ООП) — это методика разработки программ, в основе которой лежит понятие объекта как некоторой структуры, соответствующей объекту реального мира, его поведению. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними. Программа при таком подходе представляет собой набор объектов и связей между ними.
Turbo Pascal дает возможность определять объекты. Например:
Type
TPerson = object
Name:string[20];
Address: string [40];
end;
Var
Student:TPerson;
Переменная student - это объект, экземпляр объектного типа. объект student представляет собой структуру, которая состоит из двух полей строкового типа: Name И Address.
Type
ТРегson = object
Name: string[20]; (имя }
Address :string[40]; { адрес }
end;
TStudent = object (TPerson)
Group:integer; { номер учебной группы }
end;
TProfessor = object (TPerson)
|
|
kafedra:string[40]; { название кафедры }
end;
В приведенном примере тип TPerson является родительским типом для типов TStudent И TProfessor. В свою очередь типы TStudent И TProfessor являются дочерними типами для типа TPerson, они наследуют поля своего родительского типа. При объявлении дочернего типа родительский тип указывается в скобках, после слова object.
Методы
Метод — это процедура (функция), объявление которой включено в объявление объектного типа. Метод выполняет действие над объектом — экземпляром объектного типа. Включая объявление методов в объявление объектного типа, программист явно указывает, какие действия могут быть выполнены над объектом.
Вот пример объявления объектного типа, в состав которого включены три метода.
Type
TPerson = object
Name :string;
Address :string;
procedure Init(n, a: string);
procedure Show;
function GetAddress: string;
end;
В приведенном примере объявлены два метода-процедуры и метод-функция GetAddress. Метод Init предназначен для инициализации полей объекта, метод Show — для вывода содержимого полей объекта на экран монитора, метод GetAddres обеспечивает доступ к полю Address.
В программе методы определяются точно так же, как обычные процедуры функции, за исключением того, что имя процедуры или функции, являющейся методом, должно состоять из двух частей: имени объектного типа, которому принадлежит метод, и имени процедуры-метода. Имя метода является от имени объектного типа точкой. В инструкциях метода имена полей могут использоваться без явной ссылки на объект.
Чтобы метод был выполнен, надо выполнить инструкцию применения метода к объекту: Объект.Метод;
Ограничение доступа к полям объекта
|
|
Доступ к полям объекта с использованием имени поля возможен, однако в соответствии с принципами ООП вместо прямого доступа к полям объекта следует использовать методы. Метод обеспечивает инициализацию объекта. Метод SetAddress позволяет изменить значение поля Address, методы GetName И GetAddress — получить значения соответствующих полей.
Для защиты полей объекта от прямого доступа используют директиву Private
Директива private также используется для ограничения использования некоторых методов объекта. Поля и методы, объявленные как private, доступны только в том модуле, в котором объявлен тип, которому они принадлежат.