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

UptoLike

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

17
Но если структура типа не видна пользователю, то что же тогда
служит его описанием ? В качестве такового теперь выступают свойства
объектов данного типа, то есть операции, которые к ним применимы.
Тип данных со скрытым внутренним представлением , описанный в тер-
минах допустимых операций, наз ы вают абстрактным.
Заметим , что абстрактные типы имеют много общего с понятиями
современной математики. Каждое введение в теорию множеств отмеча-
ет, что природа их элементов не имеет никакого значения: множества и
классы определяются просто как сущности, над которыми можно вы -
полнять определенные операции. То же самое верно и в отношении л ю-
бого другого математического понятия. Следствием такого подхода яв-
ляется повышенная результативность: конечный итог того или иного
исследования как правило оказывается применим не к одному, а к цел о-
му классу конкретных объектов .
Абстрактные типы данных выполняют аналогичную функцию,
позволяя создавать алгоритмы, не зависящие от реализации типа и по-
тому обладающие значительно бóльшим временем жизни. Более того,
появляется возможность разрабатывать обобщенные алгоритмы, кот о-
рые одновременно и без каких-либо изменений могут быть применены к
данным потенциально бесконечного множества типов .
В Object Pascal, как и в большинстве других современных языков
программирования, абстрактные типы реализуются посредством клас-
сов. Классом здесь называется тип данных, объединяющий в себе струк-
туру, аналогичную записи, и набор подпрограмм для работы с ней. Пе-
ременные классового типа называют объектами.
Определение класса состоит из двух частей: интерфейса и реали-
зации. Интерфейс размещается в разделе type и имеет следующий вид :
ИмяКласса = class СписокЧленов end;
где ИмяКласса любой допустимый идентификатор , СписокЧленов
список объявлений членов класса: полей и методов (возможно, пустой ).
В действительности, язык Object Pascal использует еще один тип
членов класса: свойства (
properties), который позволяет связывать меж-
ду собой поля и методы. Своим происхождением он обязан, по-видимо-
му, особенностям среды разработки, используемой Delphi.
В отличие от свойств абстрактных типов , полностью описываю-
щих возможности экземпляров , свойства класса используются в основ-
ном для представления количественных характеристик объекта. Ничего
принципиально нового в объектную модель свойства не добавляют, по-
этому далее мы о них говорить не будем .
          Н о ес л и с т рукт ура т ипа не в ид на пол ь з ов ат ел ю, то что же тогд а
с л ужит егоопис анием ? В качес т в е т аков огот еперь в ы с т упают свойства
объектов д анного т ипа, то ес т ь операции, которы е к ним прим еним ы .
Т ип д анны хс ос кры т ы м в нут ренним пред с т ав л ением , опис анны й в т ер-
м инахд опус т им ы хопераций, наз ы в ают а бстра ктн ым.
          Зам ет им , чтоабс т ракт ны е т ипы им еют м ногообщегос понят иям и
с ов рем енной м ат ем ат ики. Кажд ое в в ед ение в т еорию м ножес т в от м еча-
ет, чтоприрод а ихэл ем ентов не им еет никакогоз начения: м ножес т в а и
кл ас с ы опред ел яют с я прос то как с ущнос т и, над которы м и м ожно в ы -
пол нят ь опред ел енны е операции. Т оже с ам ое в ернои в от нош ении л ю-
бого д ругого м ат ем ат ичес кого понят ия. Сл ед с т в ием т акого под ход а яв -
л яет с я пов ы ш енная рез ул ь т ат ив нос т ь : конечны й итог того ил и иного
ис с л ед ов ания как прав ил ооказ ы в ает с я прим еним не к од ном у, а к цел о-
м у кл ас с у конкрет ны хобъектов .
          Абс т ракт ны е т ипы д анны х в ы пол няют анал огичную функцию,
поз в ол яя с оз д ав ат ь ал горит м ы , не з ав ис ящие от реал из ации т ипа и по-
том у обл ад ающие з начит ел ь но бóл ь ш им в рем енем жиз ни. Б ол ее того,
появ л яет с я в оз м ожнос т ь раз рабат ы в ат ь обобщ е н н ые а л г оритмы, кото-
ры е од нов рем еннои без каких-л ибоиз м енений м огут бы т ь прим енены к
д анны м пот енциал ь нобес конечногом ножес т в а т ипов .
          В Object Pascal, как и в бол ь ш инс т в е д ругихс ов рем енны хяз ы ков
програм м иров ания, абс т ракт ны е т ипы реал из уют с я пос ред с т в ом кл а с-
сов. Кл ас с ом з д ес ь наз ы в ает с я т ип д анны х, объед иняющий в с ебе с т рук-
т уру, анал огичную з апис и, и набор под програм м д л я работ ы с ней. Пе-
рем енны е кл ас с ов огот ипа наз ы в ают объе кта ми.
          Опред ел ение кл ас с а с ос тоит из д в ухчас т ей: ин те рфе йса и ре а л и-
за ции. И нт ерфейс раз м ещает с я в раз д ел е type и им еет с л ед ующий в ид :
                      ИмяКласса = class СписокЧленов end;
гд е И м я Клас с а — л юбой д опус т им ы й ид ент ификатор, С пи с о кЧ лено в —
с пис ок объяв л ений чл енов кл ас с а: пол е й и ме тодов (в оз м ожно, пус той).
            В д ейс т в ит ел ь нос т и, яз ы к Object Pascal ис пол ь з ует еще од ин т ип
   чл енов кл ас с а: свойства ( properties), которы й поз в ол яет с в яз ы в ат ь м еж-
   д у с обой пол я и м етод ы . Св оим проис хожд ением он обяз ан, по-в ид им о-
   м у, ос обеннос тям с ред ы раз работ ки, ис пол ь з уем ой Delphi.
            В отл ичие от с в ойс т в абс т ракт ны хт ипов , пол нос т ь ю опис ы в аю-
   щихв оз м ожнос т и экз ем пл яров , с в ойс т в а кл ас с а ис пол ь з уют с я в ос нов -
   ном д л я пред с т ав л ения кол ичес т в енны ххаракт ерис т ик объект а. Н ичего
   принципиал ь но нов ого в объект ную м од ел ь с в ойс т в а не д обав л яют, по-
   этом у д ал ее м ы онихгов орит ь не буд ем .


                                             17