39892

Объектно-ориентированное программирование. Скрытие данных в объектах

Реферат

Информатика, кибернетика и программирование

Наследование определение объекта и дальнейшее использование всех его свойств для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта относящегося к иерархии доступа к коду и данным всех порожденных объектов...

Русский

2015-01-19

42 KB

0 чел.

Объектно-ориентированное программирование

ООП представляет собой способ программирования, позволяющий создавать модульные программы с представлением данных на определенном уровне абстракции.

Ключевым понятием ООП является объект. В Паскале объект подобен записи Record и содержит данные различных типов. Но в отличие от записи он может содержать и методы работы над объектом – это процедуры или функции, которые оперируют данными объекта.

 

 Пример: Рассмотрим семейство объектов, описывающих файлы различных типов и действия над ними.

Объект-файл можно определить как совокупность данных:

- длина файла;

- дата создания файла;

- текущая позиция указателя файла;

и совокупность методов работы с файлами, т.е. из файла можно прочитать данные, записать в файл и установить дату создания.

Все объекты характеризируются тремя свойствами:

- инкапсуляция – комбинирование записи с процедурами и функциями для получения объекта как нового типа данных;

- наследование – определение объекта и дальнейшее использование всех его свойств для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порожденных объектов;

- полиморфизм – присваивание определенному действию одного имени, которое затем совместно используется по всей иерархии объектов, причем каждый объект выполняет это действие характерным для него способом.

Одним из примеров иерархии может быть дерево каталогов:

    Геометрический объект

    Плоский  Объемный  

  С вершинами  без вершин

     Окружность эллипс

Описание объектов:

 TYPE

Coordinates = object

 x, y: integer;

 end;

var

c: coordinates;

c.x

c.y {обращение к полям}

 type

 TPerson = object

 Name: string [30];

 Date: string [10];

 Rate: real;

Procedure Init (Nm, Dt: string; Rt: real);

Function GetName: string;

Function GetDate: string;

Function GetRate: real;

Procedure ShowName;

Procedure ShowDate;

Procedure ShowRate;

End;

 Описание потомка предыдущего объекта:

 type

TStudent = object (TPerson)

 Ball: real;

Procedure Init (Nm, Dt: string; Rt, Bl: real);

Function GetBall: real;

Function GetSum: real;

Procedure ShowBall;

Procedure ShowSum;

Procedure ShowAll;

End;

 Метод – представляет собой процедуру или функцию, определенную в рамках объекта, которая используется для выполнения действий над полями объекта.

Описание методов внутри объекта только указывает действия, но не указывает, каким образом они будут выполняться. Сами методы описываются вне определения объекта, как отдельная процедура или функция.

При описании метода, его имени должно обязательно предшествовать имя типа объекта, которому принадлежит данный метод.

 

 Procedure TStudent.ShowBall;

Begin

End;

 

Procedure TPerson.Init;

Begin

Name:= ‘Иванов’;

End;

 Скрытие данных в объектах

 Иногда при использовании объектов внутри модулей могут встречаться части описаний объектов, которые нежелательно экспортировать. Необходимо предусмотреть объекты, методы, которые доступны, но непосредственный доступ к данным объекта запрещен.

В Паскаль для этих целей используют скрытые или частные поля и методы. Такие поля и методы доступны только внутри того модуля, в котором описан объект. Таки образом, полное описание объекта выглядит следующим образом:

 Type

NewObject = object

 Поля;

 Методы; {общедоступные}

 Private

 Поля;

 Методы; {скрытые}

 Public

 Поля;

 Методы; {общедоступные}

End;

 Виртуальные методы

 Все используемые ранее методы являлись статическими. Статические методы всегда работают с экземплярами типа объекта, для которого они были введены. Таким образом, происходит жесткое закрепление метода за типом объекта. Наряду со статическими методами в Паскаль используются виртуальные методы.

Суть виртуального метода заключается в общедоступности использования его действия по одному и тому же имени всеми объектами дерева иерархии, при этом каждый из объектов реализует это действие по-своему.

Виртуальность говорит о том, что при вызове такого метода необходимо уделять внимание действию, а не конкретному экземпляру объекта, над полями которого оно будет производиться.

Метод становиться виртуальным, если за его описанием указывается слово virtual:

 Type

NewObject = object

 Поля;

 Методы; virtual;

 Виртуальные методы используются для работы  с динамическими объектами:

 TYPE

CoordinatesPtr = ^Coordinates;

Coordinates = object

 x, y: integer;

 end;

var

c: CoordinatesPtr;

New(c);

c^.x;

 Обращение к таким объектам можно построить только после выделения памяти в Heap-области.

Для динамических объектов введено расширение процедур New и Dispose. Оно связано с введением второго параметра в виде соответствия метода объекта. Этот метод должен быть строго определен и для New носит название Constuctor.

 Пример:

 Type

DataInputPtr =^ DataInput;

  DataInput = object (coordinates)

Visibleflag: Boolean;

Constructor Init (xIn, yIn: byte; Vin: boolean);

Destructor Done; virtual;

Procedure Show; virtual;

Var

AllDatP: ^ DataInput;

 Процедура распределения памяти с Constuctor выглядит следующим образом:

 New (AllDatP, Init (5, 10, true));

 Для процедуры Dispose введенный метод носит название Destructor – уничтожение объекта.

 Dispose (AllDatP, Done)

 Для уничтожения объекта Destructor можно записывать следующим образом:

 Destructor DataInput.Done;

Begin

End;


 

А также другие работы, которые могут Вас заинтересовать

34781. Истоки философии мифология, религия, любовь к мудрости, раздумья философов 27.5 KB
  Мифология система преданий сказаний легенд при помощи воображения объясняющая протекание и происхождение природных и социальных процессов. Мифология в своем возникновении была наивной философией и наукой. Мифология являла собой попытку объяснения явлений природы и жизни людей взаимоотношение земного и космического начал.
34782. Специфика философского знания. Содержание метод и цель. Отличие философии от религии и искусства 42.5 KB
  Желаешь познать себя философствуй это справедливо как для отдельного человека так и для любой эпохи. Это та область духовной деятельности человека в основании которой лежит рефлексия над самой этой деятельностью и следовательно над ее смыслом целью и формами и в конечном счете над выяснением сущности самого человека как субъекта культуры то есть сущности отношений человека к миру. Цель философии увлечь человека высшими идеалами вывести его из сферы обыденности придать его жизни истинный смысл открыть путь к самым совершенным...
34783. Философия и мировоззрение. Основной вопрос философии философское познание. Познание и нравственность 31 KB
  ФИЛОСОФИЯ И МИРОВОЗЗРЕНИЕ Всякая философия это мировоззрение т. Философия составляет теоретическую основу мировоззрения: философия это высший уровень и вид мировоззрения это системнорациональное и теоретически оформленное мировоззрение; философия это такая форма общественного и индивидуального сознания которая обладает большей степенью научности чем просто мировоззрение; философия это система основополагающих идей в составе общественного мировоззрения. Мировоззрение это обобщенная система взглядов человека и общества на...
34784. Проблема научности философского мировоззрения. Философия и наука: родство и различие функций 30 KB
  ' Теория познания специальное исследование познания которое делится: на критику познания отталкивающуюся от существовавшего до сих пор типа познания в котором она критически отказывает наличному знанию; на теорию познания в узком смысле предметом которой является этот тип познания. Проблемы которые изучает теория познания: природа познания; возможности и границы познания; отношение знания и реальности; соотношение субъекта и объекта познания; предпосылки познавательного процесса; условия достоверности знания; критерии истинности знания;...
34785. Философия древнего Китая. Даосизм и конфуцианство 42.5 KB
  Наоборот основным положением китайской философии является утверждение неразрывной связи человека и божественного Небесного начала. В классический период 6 3 века до н. Во второй период 3 11 века произошел резкий поворот к метафизике. В неоконфуцианский период 11 19 века влияние буддизма и даосизма побудило конфуцианских философов к разработке метафизической базы для своей этики.
34786. Человек в философии и культуре древней индии. Буддизм и йога 31 KB
  Учения об обществе и государстве эстетика являлись особыми теоретическими дисциплинами. Индийскую философию составляют шесть ортодоксальных признающих авторитет вед школ или систем: миманса веданта ньяя вайшешика санкхья и йога; а также неортодоксальные учения адживикизма буддизма и джайнизма. Учение каждой из них было систематизировано сборниками сутр которые кратко излагали доктрины отдельной системы учения в форме лаконичных изречений формул или правил. В основе учения мимансы лежит убеждение в том что освобождение мокша...
34787. Становление древнегреческой философии: от мифа к логосу. Диалектика Гераклита 26.5 KB
  Диалектика Гераклита Возникновение и общие принципы античной философии Античная философия зародилась в IV в. Таким образом для возникновения античной философии было необходимо единство и противоположность умственного и физического труда материи и идеи. Важным элементом философии Античности была взаимосвязь материи и идеи.
34788. Онтология античной классики. Парменид и Зенон 34.5 KB
  Античная философия это последовательно развивавшаяся философская мысль которая охватывает период свыше тысячи лет с конца VII в. Античная философия развивалась неизолированно она черпала мудрость Древнего Востока таких стран как: Ливия; Вавилон; Египет; Персия; Древний Китай; Древняя Индия. Характерные черты античной философии: 1 античная философия синкретична характерным для нее является большая слитность нерасчлененность важнейших проблем чем для более поздних видов философии; 2античная философия космоцентрична она...
34789. Атомистическая трактовка бытия. Левкипп и Демокрит 23.5 KB
  Космос рождается в вихре из столкновения атомов а цилиндрическая Земля находится в центре Вселенной. Признавал наличие двух первоначал: атомов и пустоты. Пустоту представлял как вакуум бесконечное пространство; в пустоте движется бесконечное количество атомов составляющих Бытие то есть физический мир. Таким образом различия между предметами по цвету температуре вкусу и другим чувственно воспринимаемым качествам вызваны лишь комбинациями атомов различной конфигурации.