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;


 

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

24976. Испарение и конденсация. Насыщенные и ненасыщенные пары. Влажность воздуха. Измерение влажности воздуха 23.5 KB
  Поэтому атмосферное давление представляет собой сумму давления сухого воздуха и находящегося в нем водяного пара. Давление водяного пара будет максимальным при насыщении воздуха паром. Так давление насыщенного пара не зависит от объема но зависит от температуры. Эта зависимость не может быть выражена простой формулой поэтому на основе экспериментального изучения зависимости давления насыщенного пара от температуры составлены таблицы по которым можно определить его давление при различных температурах.
24977. Кристаллические и аморфные тела. Упругие и пластические деформации твердых тел 24 KB
  Твердые тела. Кристаллические тела. Аморфные тела.
24978. Работа в термодинамике. Внутренняя энергия. Первый закон термодинамики. Применение первого закона к изопроцессам. Адиабатный процесс 29.5 KB
  Существуют два способа изменения внутренней энергии: теплопередача и совершение механической работы например нагревание при трении или при сжатии охлаждение при расширении. Теплопередача это изменение внутренней энергии без совершения работы: энергия передается от более нагретых тел к менее нагретым. Теплопередача бывает трех видов: теплопроводность непосредственный обмен энергией между хаотически движущимися частицами взаимодействующих тел или частей одного и того же тела; конвекция перенос энергии потоками жидкости или газа и...
24979. Взаимодействие заряженных тел. Закон Кулона. Закон сохранения электрического заряда 31 KB
  Способность электрических зарядов как к взаимному притяжению так и к взаимному отталкиванию объясняется существованием двух видов зарядов. алгебраическая сумма зарядов всех тел остается постоянной: q1 q2 . Появление и исчезновение электрических зарядов на телах в большинстве случаев объясняется переходами элементарных заряженных частиц электронов от одних тел к другим. Законы взаимодействия неподвижных электрических зарядов изучает электростатика.
24980. Работа и мощность в цепи постоянного тока. Электродвижущая сила. Закон Ома для полной цепи 26 KB
  Работа тока. В электрическом поле из формулы определения напряжения U = A q легко получить выражение для расчета работы переноса электрического заряда А = Uq так как для тока заряд q = It то работа тока: А = Ult или А = I2R t = U2 R t. При прохождении тока по проводнику количество теплоты выделившейся в проводнике прямо пропорционально квадрату силы тока сопротивлению проводника и времени прохождения тока.
24981. Магнитное поле, условия его существования. Действие магнитного поля на электрический заряд и опыты, подтверждающие это действие. Магнитная индукция 54 KB
  Магнитное взаимодействие движущихся электрических зарядов согласно представлениям теории близкодействия объясняется следующим образом: всякий движущийся электрический заряд создает в окружающем пространстве магнитное поле. Магнитное поле особый вид материи который возникает в пространстве вокруг любого переменного электрического поля. С современной точки зрения в природе существует совокупность двух полей электрического и магнитного это электромагнитное поле оно представляет собой особый вид материи т.
24982. Полупроводники. Собственная и примесная проводимость полупроводников. Полупроводниковые приборы 31.5 KB
  Собственная и примесная проводимость полупроводников. Полупроводниковые приборы План ответа 1. Полупроводниковые приборы. Применение полупроводников.
24983. Электромагнитная индукция. Магнитный поток. Закон электромагнитной индукции. Правило Ленца 42 KB
  Закон электромагнитной индукции. Опыты по электромагнитной индукции. Явление электромагнитной индукции было открыто Майклом Фарадеем в 1831 г. Магнитным потоком через замкнутый контур площадью S называют физическую величину равную произведению модуля вектора магнитной индукции В на площадь контура S и на косинус угла а между направлением вектора магнитной индукции и нормалью к площади контура.
24984. Явление самоиндукции. Индуктивность. Электромагнитное поле 27.5 KB
  Явление самоиндукции заключается в появлении ЭДС индукции в самом проводнике при изменении тока в нем. Примером явления самоиндукции является опыт с двумя лампочками подключенными параллельно через ключ к источнику тока одна из которых подключается через катушку рис. Это происходит потому что после замыкания ключа ток достигает максимального значения не сразу магнитное поле нарастающего тока породит в катушке индукционную ЭДС которая в соответствии с правилом Ленца будет мешать нарастанию тока. Для самоиндукции выполняется...