Введение в объектно-ориентированное программирование на языке Object Pascal. Соколов Е.В. - 19 стр.

UptoLike

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

19
носит чисто синтаксический ха рактер
2
.
Некоторое сходство между приведенным выше выражением и ин-
струкцией возбуждения исключения raise Exception.Create(...) не случай-
но. В действительности, все исключения в Object Pascal являются объек-
тами класса Exception и, вызывая их, мы передаем оператору raise адрес
вновь созданного экземпляра данного класса, содержащего описание ис -
ключительной ситуации. Впоследствии эта информация может быть ис-
пользована при обработке исключения, однако подробное знакомство с
данным процессом не вход ит в наши планы .
После выделения памяти обращение к полям объекта произво-
дится посредством оператора «точка» :
ИмяОбъекта.ИмяПоля
Операция разыменовывания (^), необходимая при работе с динамиче-
скими переменны ми других типов , для объектных ссылок не требуется.
Описанию синтаксиса вызова методов предпошлем небольшое
отступление.
Как известно, в математике применяются два способа записи от о-
бражений: функциональный x(a, b) и операторный a
x
b. Первый являе т -
ся более универсальным и используется в теории функций. Второй в
сочетании со свойс твом ассоциативности позволяет избежать лишних
скобок при записи композ и ции отображений и характерен для алгебры .
Абсолютно никакой содержател ь ной разницы между этими способами
нет и выбор в пользу того или иного определ яется, главным образом ,
сложившимися традициями.
Языки программирования обычно поддерживают обе формы за-
писи, расширяя как понятие оператора, так и понятие функции. С поя в -
лением объектов к этим формам добавляется еще одна, несколько варьи-
рующаяся от од н ого языка к другому.
В Object Pascal для вызова методов используется инструкция вида
ИмяОбъекта.ИмяМетода(Параметры);
которая содержательно (но не синтаксически!) эквивалентна выражению
ИмяМетода(ИмяОбъекта,Параметры);
2
Читатель, вероятно, уже заметил , что термин «объект» используется нами в двух
несколько различных смыслах: переменная классового типа и область памяти,
адресуемая этой переменной . Второе более точно, однако с точки зрения объект -
ной идеологии конкретное представление объекта не имеет значения, поэтому
первая интерпретация также допустима. Далее, говоря о переменной x как об
объекте, мы всегда будем подразумевать объект, адрес которого содержит x.
нос ит чис тос инт акс ичес кий характ ер2.
                Н екоторое с ход с т в ом ежд у прив ед енны м в ы ш е в ы ражением и ин-
      с т рукцией в оз бужд ения ис кл ючения raise Exception.Create(...) не с л учай-
      но. В д ейс т в ит ел ь нос т и, в с е ис кл ючения в Object Pascal яв л яют с я объек-
      т ам и кл ас с а Exception и, в ы з ы в ая их, м ы перед аем оператору raise ад рес
      в нов ь с оз д анногоэкз ем пл яра д анногокл ас с а, с од ержащегоопис ание ис -
      кл ючит ел ь ной с ит уации. Впос л ед с т в ии эт а информ ация м ожет бы т ь ис -
      пол ь з ов ана при обработ ке ис кл ючения, од нако под робное з наком с т в о с
      д анны м процес с ом не в ход ит в наш и пл аны .
         Пос л е в ы д ел ения пам ят и обращение к пол ям объект а произ в о-
д ит с я пос ред с т в ом оператора «точка» :
                                     ИмяОбъекта.ИмяПоля
Операция раз ы м енов ы в ания (^), необход им ая при работ е с д инам иче-
с ким и перем енны м и д ругихт ипов , д л я объект ны хс с ы л ок не т ребует с я.
         Опис анию с инт акс ис а в ы з ов а м етод ов пред пош л ем небол ь ш ое
от с т упл ение.
         Как из в ес т но, в м ат ем ат ике прим еняют с я д в а с пос оба з апис и ото-
бражений: функционал ь ны й x(a, b) и операторны й a x b. Перв ы й яв л яет -
с я бол ее унив ерс ал ь ны м и ис пол ь з ует с я в т еории функций. Второй в
с очет ании с о с в ойс т в ом ас с оциат ив нос т и поз в ол яет из бежат ь л иш них
с кобок при з апис и ком поз иции отображений и характ ерен д л я ал гебры .
Абс ол ют но никакой с од ержат ел ь ной раз ницы м ежд у э т им и с пос обам и
нет и в ы бор в пол ь з у того ил и иного опред ел яет с я, гл ав ны м образ ом ,
с л ожив ш им ис я т рад ициям и.
         Яз ы ки програм м иров ания обы чно под д ержив ают обе форм ы з а-
пис и, рас ш иряя как понят ие оператора, т ак и понят ие функции. С появ -
л ением объектов к э т им форм ам д обав л яет с я еще од на, нес кол ь ков арь и-
рующаяс я от од ногояз ы ка к д ругом у.
         В Object Pascal д л я в ы з ов а м етод ов ис пол ь з ует с я инс т рукция в ид а
                           ИмяОбъекта.ИмяМетода(Параметры);
которая с од ержат ел ь но(ноне с инт акс ичес ки!) э кв ив ал ент на в ы ражению
                           ИмяМетода(ИмяОбъекта,Параметры);

2
    Ч ит ател ь, в ероятно, уже з ам ет ил , чтотерм ин «объект » ис пол ь з ует с я нам и в д вух
    нес кол ь ко раз л ичны хс м ы с л ах: перем енная кл ас с ов ого типа и обл ас ть пам яти,
    ад рес уем ая этой перем енной. Второе бол ее точно, од накос точки з рения объект-
    ной ид еол огии конкрет ное пред с т ав л ение объект а не им еет з начения, поэтом у
    перв ая инт ерпрет ация т акже д опус т им а. Дал ее, гов оря о перем енной x как об
    объект е, м ы в с егд а буд ем под раз ум ев ать объект, ад рес которогос од ержит x.

                                               19