Инкапсуляция.
Информатика и информационные технологии
Выводит на экран фамилию, должность и сумму выплат}. Init (Aleksandr Petrov, Fork lift operator' 12.95, 62); Procedure Init (AName, ATitle: string; ARate: Real); Procedure Init (AName, ATitle: string; ARate: THourly = object (TEmployee). Function GetPayAmount: Real; Function GetPayAmount: Real; Function GetTitle: String; Function GetName: String; Function GetRate: Real; Real, Atime: Integer… Читать ещё >
Инкапсуляция. Информатика и информационные технологии (реферат, курсовая, диплом, контрольная)
Объединение в объекте кода и данных называется инкапсуляцией. В принципе, возможно предоставить достаточное количество методов, благодаря которым пользователь объекта никогда не будет обращаться к полям объекта непосредственно. Некоторые другие объектно-ориентированные языки, например Smalltalk, требуют обязательной инкапсуляции, однако в Borland Pascal имеется выбор.
Например, объекты TEmployee и THourly написаны таким образом, что совершенно исключена необходимость прямого обращения к их внутренним полям данных:
type.
TEmployee = object.
Name, Title: string[25];
Rate: Real;
procedure Init (AName, ATitle: string; ARate: Real);
function GetName: String;
function GetTitle: String;
function GetRate: Real;
function GetPayAmount: Real;
end;
THourly = object (TEmployee).
Time: Integer;
procedure Init (AName, ATitle: string; ARate:
Real, Atime: Integer);
function GetPayAmount: Real;
end;
Здесь присутствуют только четыре поля данных: Name, Title, Rate и Time. Методы GetName и GetTitle выводят фамилию работающего и его должность соответственно. Метод GetPayAmount использует Rate, а в случае работающего THourly и Time для вычисления суммы выплат работающему. Здесь уже нет необходимости обращаться непосредственно к этим полям данных.
Предположив существование экземпляра AnHourly типа THourly, мы могли бы использовать набор методов для манипулирования полями данных AnHourly, например:
with AnHourly do.
begin.
Init (Aleksandr Petrov, Fork lift operator' 12.95, 62);
{Выводит на экран фамилию, должность и сумму выплат}.
Show;
end;
Следует обратить внимание, что доступ к полям объекта осуществляется не иначе, как только с помощью методов этого объекта.