ВУЗ:
Составители:
Рубрика:
18
Поля класса, так же как и поля записи, представляют собой обы ч -
ные переменные, сгруппированные в одну структуру. Методы — это
подпрограммы для работы с данной структурой . Объявления полей и
методов аналогичны объявлениям , соответственно, переменных и под -
программ. Рассмотрим
Пример 2.1. Интерфейс класса «Треугольник» .
type
Triangle = class // класс треугольник
a,b,c: Real; // поля - длины сторон
function Square: Real; // метод для вычисления площади
function Perimeter: Real; // метод для вычисления периметра
end;
Приведенное объявление показывает, что объекты класса Triangle
характеризуются тремя действительными числами — длинами сторон , и
что к каждому объекту применимы операции вычисления площади и
периметра. Отложим на время вопрос о реализации методов и посмот-
рим , как ис пользовать готовые классы в программе.
2.2. Использование классов
Как и другие типы данных, классы достаточно редко фигурируют
собственно в коде алгоритмов . Обычно их имена употребляются в объ -
явлениях объектов — п е ременных и параметров подпрограмм.
Особенностью объектной модели языка Object Pascal является то,
что все объектные переменные в нем представляют собой указатели
(ссылки на объекты, object reference), исходные значения которых не
определены . Для реального размещения объекта в памяти испол ь зуется
следующая инструкция:
ИмяОбъекта := ИмяКласса.Create;
Она выделяет в памяти область, содержащую по одному экземпляру
кажд ого поля класса, и присваивает объектной переменной ее адрес .
Таким образом , вопреки первому впечатлению, объекты имеют
почти такое же внутреннее строение, как и переменные типа «запись».
Методы по-прежнему размещаются в памяти только один раз , в области,
отведенной для кода, и их объединение с полями в объявлении класса
Пол я кл ас с а, т ак же как и пол я з апис и, пред с т ав л яют с обой обы ч- ны е перем енны е, с группиров анны е в од ну с т рукт уру. М етод ы — э то под програм м ы д л я работ ы с д анной с т рукт урой. Объяв л ения пол ей и м етод ов анал огичны объяв л ениям , с оот в ет с т в енно, перем енны хи под - програм м . Рас с м от рим Пример 2.1. И нт ерфейс кл ас с а «Т реугол ь ник» . type Triangle = class // класс треугольник a,b,c: Real; // поля - длины сторон function Square: Real; // метод для вычисления площади function Perimeter: Real; // метод для вычисления периметра end; Прив ед енное объяв л ение показ ы в ает, чтообъект ы кл ас с а Triangle характ ериз уют с я т рем я д ейс т в ит ел ь ны м и чис л ам и — д л инам и с торон, и что к кажд ом у объект у прим еним ы операции в ы чис л ения пл ощад и и перим ет ра. Отл ожим на в рем я в опрос о реал из ации м етод ов и пос м от - рим , как ис пол ь з ов ат ь готов ы е кл ас с ы в програм м е. 2.2. И сп о ль зование классов Как и д ругие т ипы д анны х, кл ас с ы д ос т аточноред кофигурируют с обс т в еннов код е ал горит м ов . Обы чноихим ена упот ребл яют с я в объ- яв л енияхобъектов — перем енны хи парам ет ров под програм м . Ос обеннос т ь ю объект ной м од ел и яз ы ка Object Pascal яв л яет с я то, что в с е объект ны е перем енны е в нем пред с т ав л яют с обой указ ат ел и (ссыл ки н а объе кты, object reference), ис ход ны е з начения которы х не опред ел ены . Дл я реал ь ногораз м ещения объект а в пам ят и ис пол ь з ует с я с л ед ующая инс т рукция: ИмяОбъекта := ИмяКласса.Create; Она в ы д ел яет в пам ят и обл ас т ь , с од ержащую по од ном у э кз ем пл яру кажд огопол я кл ас с а, и прис в аив ает объект ной перем енной ее ад рес . Т аким образ ом , в опреки перв ом у в печатл ению, объект ы им еют почт и т акое же в нут реннее с т роение, как и перем енны е т ипа «з апис ь » . М етод ы по-прежнем у раз м ещают с я в пам ят и тол ь коод ин раз , в обл ас т и, от в ед енной д л я код а, и ихобъед инение с пол ям и в объяв л ении кл ас с а 18
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »