Ограничение доступа к полям объекта

Объектно-ориентированный подход (ООП) к проектированию и разработке ПО: сущность ООП, объектный тип данных, переменные объектного типа, инкапсуляция, наследование, полиморфизм, классы и объекты.

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

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, доступны только в том модуле, в котором объявлен тип, которому они принадлежат.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: