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