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

UptoLike

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

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