Выводом из того факта, что методы и их объекты разделяют об-
щую область действия, является то, что формальные параметры мето-
да не могут быть идентичными любому из полей данных объекта. Это
является не каким-то новым ограничением, налагаемым объектно-ори-
ентированным программированием, а скорее теми же самыми старыми
правилами области действия, которые Паскаль имел всегда. Это то
же самое, что и запрет для формальных параметров процедуры быть
идентичными локальным переменным этой процедуры:
procedure CrunchIt(Crunchee: MyDataRec,
Crunchby, ErrorCode: integer);
var
A, B: char;
ErrorCode: integer;
begin
.
.
.
Локальные переменные процедуры и ее формальные параметры
совместно используют общую область действия и поэтому не могут
быть идентичными. Вы получите сообщение "Error 4: Duplicate
identifier" (Ошибка 4; Повторение идентификатора), если попытае-
тесь компилировать что-либо подобное, та же ошибка возникает при
попытке присвоить формальному параметру метода имени поля объек-
та, которому данный метод принадлежит.
Обстоятельства несколько отличаются, так как помещение заго-
ловка процедуры внутрь структуры данных является намеком на нов-
шество в Турбо Паскале, но основные принципы области действия
Паскаля не изменились.