Методы в Object Pascal. Семенов Н.М. - 23 стр.

UptoLike

Составители: 

23
или
begin
. . .
Результат := ИмяКласса.ИмяКлассовогоМетода(<Параметры>);
. . .
end;
Так же, как и обычные, классовые функции могут использоваться внутри выражений.
Пример:
type
TDatabase=class
class function InstanceCount : Integer;
end;
. . .
class function TDatabase.InstanceCount;
begin
. . .
Result := . . .
. . .
end;
. . .
var
TheDatabase: TDatabase;
NumInstances: Integer;
begin
. . .
NumInstances:=TheDatabase.InstanceCount;
NumInstances:=TDatabase.InstanceCount;
. . .
end;
Как видно из примеров, классовые методы могут быть вызваны не только через
представителя класса, но также и непосредственно через сам тип класса.
2.5 Методы для доступа к полям
Хотя с помощью оператора with можно получить прямой доступ к полям объекта,
использование такого подхода не рекомендуется.
Одно из больших преимуществ ООП - это инкапсуляция и ее поддержка для скрытия
информации. Если работать с полями напрямую или даже просто показывать их, то в результате
детали реализации объекта становятся известными и могут взаимодействовать с внешним миром,
что в значительной мере губит преимущества инкапсуляции.
Каждый раз, когда понадобится модифицировать или оптимизировать реализацию такого
объекта, ваши действия будут сказываться на его возможных пользователях. По этой причине не
стоит представлять прямого доступа ко внутреннему предоставлению объекта и надо защищать
его пользователей от ненужных им деталей реализации.