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