69111

Основні концепції об’єктно-орієнтованої методології програмування. Базові поняття об’єктна-орієнтованого програмування. Класи і об’єкти в мові Pascal

Лекция

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

Методологія об’єктно-орієнтованого програмування виникла як результат природної еволюції мов структурного програмування. 3 погляду цієї методології програма є сукупністю об’єктів, кожен об’єкт є екземпляром певного класу, а класи утворюють ієрархію успадкування

Украинкский

2014-09-30

79.5 KB

9 чел.

Лекція 20.Тема: Основні концепції об’єктно-орієнтованої мед отології програмування.

                            Базові поняття об’єктна-орієнтованого програмування.Класи і об’єкти в мові Pascal.

План:

1. Основні концепції об'єктно-орієнтованої методології програмування

2. Базові поняття об'єктно-орієнтованого програмування

3. Класи і об'єкти в мові Раsсаl

1. Основні концепції об'єктно-орієнтованої методології програмування

Методологія об'єктно-орієнтованого програмування виникла як результат природної еволюції мов структурного програмування. 3 погляду цієї методології програма є сукупністю об'єктів, кожен об'єкт є екземпляром певного класу, а класи утворюють ієрархію успадкування [4].

2. Базові поняття об'єктно-орієнтованого програмування

Пояснимо поняття, що були використані у визначенні об'єктно-орієнтованої методології. Об'єкт — це реальна або абстрактна сутність, яка моделює частину навколишньої дійсності. Отже, кожний реальний предмет — це об'єкт. Прикладами реальных об'єктів є автомобіль, літак, завод, людина, матриця, вектор тощо. Ті самі слова: «автомобіль», «літак», «людина» тощо позначають не об'єкти, а класи, коли йдеться не про конкретний автомобіль, літак або людину, а, наприклад, про автомобиль або літак як різновид транспортного засобу і про людину як біологічний вид. Отже, клас є абстракцією множини об'єктів, що мають спільні властивості і поведінку. Транспортний засіб і біологічний вид — це теж класи. Відношення між літаком і транспортним засобом або між видом «homo sapiens» і біологічним видом взагалі є відношенням успадкування, або відношенням «є» (англ. «is а»): літак є різновидом транспортного засобу, вид «homo sapiens» є різновидом біолгічного виду. Коли клас В є різновидом класу А, то А називається класом-предком, В — класом-нащадком.

3 погляду програмування об'єкт складається з атрибутів і методів. Атрибути описують властивості об'єкта у певний момент часу, методи — властиву для об'єкта поведінку. Всі об’єкти, що є екземплярами одного класу, мають однаковий набір атрибутів і методів. Значення атрибутів зберігаються в змінних, а дії методів описуються в процедурах або функціях. Тому клас може бути визначений як набір оголошень змінних-атрибутів і підпрограм-методів. Визначені всередині класу елементи даних називаються змінними-членами класу, процедури і функції – функціями-членами, або методами класу. Оголошення класу називається його інтерфейсом, а опис його методів – реалізацією. Як правило, інтерфейс класу відокремлюється від його реалізації.

Об’єктно-орієнтоване програмування ґрунтується на трьох концепціях: інкапсуляції, успадкування і поліморфізму. Інкапсуляція – це механізм, який дозволяє захистити атрибути й методи від некоректного використання. Згідно з принципами інкапсуляції атрибути класу не можуть бути доступними для екземплярів інших класів безпосередньо. Доступ до атрибутів має здійснюватися лише через методи класу. Наприклад, доступ до двигуна автомобіля можна здійснити лише за допомогою методів «завести», «вимкнути», «перемкнути швидкість» тощо. Саме эавдяки інкапсуляції можна отримати зиск у разі відокремлення інтерфейсу класу від його реалізації. Адже інкапсуляція дає можливість зробити програми, що використовують об'єкти певного класу, незалежними від способу реалізації цього класу.

Успадкування дозволяє систематизувати подібні класи на підставі їх спільних властивостей. Клас, що містить атрибути, методи, спільні для групи подібних один до одного класів, називається базовим класом, або класом-предком. Класи, що успадковують властивості і функціональні особливості базового класу, називаються похідними класами, або класами-нащадками. Як уже зазначалося, успадкування застосовують для класів, пов'язаних семантичним відношенням «є». Іншими словами, вважається, що екземпляр похідного класу водночас є екземпляром базового класу. Це дає можливість об'єктам-нащадкам використовувати атрибути і методи об'єктів-предків як свої власні (хоча слід зазначити, що деякі мови програмування, наприклад С++, дозволяють встановлювати обмеження на доступ до атрибутів і методів предків з боку методів нащадків). Найважливішою властивістю успадкування є те, що воно дає можливість уникнути повторень коду, адже спільний для множини подібних класів код може бути винесений в методи їх спільного предка. За допомогою механізму успадкування можна побудувати ієрархію класів.

В об'єктно-орієнтованому програмуванні взаємодія між об'єктами здійснюється шляхом передачі повідомлень. Об'єкт, що отримав повідомлення, реагує на нього викликом відповідного методу. Оскільки кожен об'єкт-нащадок є водночас будь-яким своїм предком, то надіслане такому об'єкту повідомлення надсилається насправді декільком об'єктам різних класів. Рішення про те, якому саме об'єкту слід опрацювати повідомлення, залежить від обставин, що з'ясовуються під час виконання програми. Здатність об'єктів похідних класів по-різному реагувати на ті самі повідомлення, називається поліморфізмом. Поліморфізм дає можливість визначати метод, що його буде викликано, під час виконання програми, а не під час її компіляції, а також можливістъ використовувати однойменні методи з різними заголовками.

3. Класи і об'єкти в мові Раsсаl

Наведемо синтаксис оголошення класу в мові Раsсаl. Зазначимо, клас називається об'єктним типом даних і позначається ключовим словом object.

type     <ім’я об’єктного типу> =object

<оголошення атрибутів>;

<заголовки методів>;

 еnd;

Тут <ім’я об’єктного типу> - довільний ідентифікатор; object - слово, зарезервоване для позначення об'єктного типу даних; <оголошення атрибутів> — перелік оголошень змінних будь-яких припустимих типів; <заголовки методів> — заголовки будь-яких процедур або функцій.

Після того як клас оголошено, його можна використовувати для створення екземплярів класу, тобто статичних або динамічних змінних об'єктного типу. Зрозуміло, що оголошення класу має передувати оголошенню і використанню екземпляра цього класу. Наведемо синтаксис оголошення екземплярів об'єктного типу в мові Раsсаl:

var <ім’я змінної-екземпляра>: <ім’я об’єктного типу>;

Під час оголошення методу використовується складене ім'я, що містить розділені крапкою імена об'єктного типу і методу. Оголошення методів об'єктів має відповідати такому синтаксису:

procedure <ім’я об’єктного типу>.<ім’я процедури (параметри)>;

begin

  {иіло процедури}

end;

function <ім’я об’єктного типу>.<ім’я функції (параметри)>:<тип>;

begin

  {тіло функції}

end;

Екземпляри об’єктного типу можна використовувати для виклику методів об’єкта. Виклик методів об’єкта здійснюється з використанням складеного імені, що містить ім’я екземпляра об’єктного типу та ім’я методу:

<ім’я змінної-екземпляра>.<ім’я методу>(<список аргументів>)

Так само здійснюється доступ до атрибутів об’єктів певного класу з методів іншого класу:

<ім’я змінної-екземпляра>.<ім’я атрибуту>

Отже, призначення методів – реалізація дій над елементами даних об’єктного типу. Методи об’єктного типу мають прямий доступ до атрибутів цього типу, оскільки вони містяться в одній області видимості. Тому, коли метод звертається до атрибутів того об’єктного типу, якому належить він сам, складені імена не використовуються.

Приклад 6.8.

Розробимо об’єкт «вектор», атрибутами якого є одновимірний масив і його розмірність (масиви розглядатимуться в розділі 7). Опишемо такі методи об’єктного типу, як ініціалізація та відображення вектора, а також обчислення скалярного добутку двох векторів.

Unit Unit6_2;       {модуль (файл unit6_2. pas)}

interface       {розділ інтерфейсу}

uses crt;

type

  mas=array[1..10] of integer;

  vector=object;      {об’єктний тип vector }

     n: integer;       {розмірність вектора}

     vec: mas;       {значення елементів вектора}

     name: char;      {ім’я вектора}

     procedure init (ch: char);     {ініціалізація даних}

     procedure showvec (ch: char);    {відображення значень елементів}

     procedure scalar (v: vector);    {скалярне множення векторів}

  end;

implementation      {розділ реалізації методів}

{--------------------------------- метод ініціалізації вектора ---------------------------------}

procedure vector, init (ch: char);

  var i: integer;

  begin

     name: char;

     write (‘input the number of vector’, name, ‘components:’);

     readln (n);

     writeln (‘input’, n, ‘components’);

     for i:=1 to n do

        read (vec[i]);

     end;

{--------------------------------- метод виведення вектора ---------------------------------}

procedure vector, showvec (ch: char);

var i: integer;

begin

  name: char;

  writeln (‘vector’, name, ‘ : ’);

  for i:=1 to n do write (vec[i], ‘ ’);

  writeln;

end;

{---------------------- метод обчислення скалярного добутку векторів ----------------}

procedure vector, scalar (v: vector); {v – екземпляр об’єктного типу }

var sum,       {скалярний добуток векторів}

     i: integer;       {параметр циклу}

begin

if n<>v.n then begin      {коли розмірності векторів різні}

  writeln (‘scalar product is not computable: ’);

  writeln (‘vector lengths are different’);

  readln;

  exit;

end

else       {коли розмірності векторів однакові}

begin

  sum:=0;

  for i:=1 to n do      {скалярний добуток векторів}

     sum:=sum+vec[i]*v.vec[i];

  writeln (‘scalar product = ’, sum);

end;

end;

end.        {кінець модуля}

program ex6_2;     {програма роботи з об’єктом «вектор»}

uses crt, Unit6_2;

var v1, v2: vector;      {об’єкти-вектори}

begin

  clrscr;

  writeln (‘create vectors’);

  v1.unit (‘A’);      {ініціалізація вектора А}

  v2.unit (‘B’);      {ініціалізація вектора В}

  v1.showvec (‘A’);      {виведення вектора А}

  v2.showvec (‘B’);      {виведення вектора В}

  v1.scalar(v2);    {обчислення скалярного добутку векторів}

end.

Висновки

Методологія структурного програмування – це сукупність методів проектування та написання програм за жорсткими правилами, дотримання яких підвищує продуктивність праці програмістів, поліпшує читабельність програм і полегшує процес їх тестування. Методологія структурного програмування ґрунтується на трьох методах: низхідного проектування, модульного програмування і структурування програм.

В основу методу низхідного проектування покладено алгоритмічну декомпозицію, згідно з якою велика задача поділяється на дрібніші під задачі, кожну з яких можна розв’язати окремо. Такий процес ґрунтується на принципах ієрархічності, абстрагування, а також специфікації інтерфейсів і модульності.

Абстрагування – це спрощений опис системи, в якому зосереджують увагу на певних властивостях і деталях, а на інші не зважають.

Специфікація інтерфейсів – це формалізований опис входів, виходів і функцій, що мають бути реалізовані програмним модулем.

Модуль має бути незалежним блоком програми, код якого логічно і фізично відділений від коду інших модулів, завдяки чому модуль можна модифікувати без наслідків для інших модулів і повторно використовувати.

В основу методів структурного програмування покладено теорему про структурування, згідно з якою будь-яку програму можна побудувати з використанням лише трьох керуючих структур: послідовності, вибору і повторення.

Розробляючи структуровані програми, слід дотримуватися таких правил: правила простоти (створення програм починати з простої програми), правила пакетування (кожну дію можна замінити двома послідовними діями), правила вкладення (кожну дію можна замінити будь-якою структурою керування).

Для перетворення неструктурованих програм у структуровані використовуються методи дублювання кодів програми, введення змінної стану і мулевих ознак.

Модуль у мові Pascal – це програмна одиниця, що автономно компілюється в окремий бінарний файл *.tpu або *.tpw. До складу модуля можна включати оголошення констант, типів змінних, а також оголошення і реалізацію процедур і функцій. Модуль з’єднується з різними Pascal-програмами, що дає можливість використовувати у програмах ідентифікатори, оголошені в модулі.

Модуль складається із заголовка, інтерфейсної, реалізаційної й ініціалізаційної частин. Для означення модуля та його частин використовуються зарезервовані слова unit, interface, implementation.

Методологія об’єктно-орієнтованого програмування дозволяє розглядати програму як сукупність об’єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію успадкування.

Об’єкт – це реальна або абстрактна сутність, що моделює частину навколишньої дійсності. З погляду програмування об’єкт складається з атрибутів і методів. Атрибути описують властивості об’єкта у певний момент часу, методи – властиву об’єкту поведінку.

Клас є абстракцією множини об’єктів, що мають спільні властивості і поведінку.

Об’єктно-орієнтоване програмування ґрунтується на концепціях інкапсуляції, успадкування і поліморфізму.

Інкапсуляція – це механізм, який дозволяє захистити атрибути і методи об’єкта від некоректного використання.

Успадкування дозволяє систематизувати подібні класи на підставі спільності їх властивостей. Клас, що містить атрибути і методи, спільні для групи подібних один до одного класів, називається базовим класом, або класом-предком. Класи, що успадковують властивості і функціональні особливості базового класу, називаються похідними класами, або класами-нащадками. Найважливішою властивістю успадкування є те, що воно дає можливість уникнути повторень коду.

В об’єктно-орієнтованому програмуванні взаємодія між об’єктами здійснюється шляхом передачі повідомлень. Здатність об’єктів похідних класів по-різному реагувати на ті самі повідомлення, називається поліморфізмом.

Контрольні питання

1. Основні концепції об'єктно-орієнтованої методології програмування

2. Базові поняття об'єктно-орієнтованого програмування

3. Класи і об'єкти в мові Раsсаl


 

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

45777. ПРОЦЕСС УПРАВЛЕНИЯ МАРКЕТИНГОМ 42.5 KB
  Комплекс маркетинга маркетингмикс и его элементы. Ей нужно знать как анализировать рыночные возможности отбирать подходящие целевые рынки разрабатывать эффективный комплекс маркетинга и успешно управлять претворением в жизнь маркетинговых задач. 1 Анализ рыночных возможностей: Системы маркетинговых исследований и маркетинговой информации Маркетинговая среда Потребительские рынки Рынки предприятий 2 Отбор целевых рынков: Замеры объемов спроса Сегментирование рынка выбор целевых сегментов и позиционирование товара на рынке 3...
45778. Понятие сбыта и сбытовой политики фирмы 21.61 KB
  Комплексность с другими элементами маркетингамикс скоординированность сочетание решений в сфере сбыта ценообразования коммуникаций сервиса и др. системность рассмотрение сбыта и остальных инструментов как элементов вызывающих синергетический эффект от их совместного применения гибкость готовность к пересмотру своих позиций в случае необходимости. Задача сбытовой политики управление конкурентоспособностью товара путем управлением каналами сбыта планирование длины ширины и типа посредников; организация и контроль...
45779. Интегрированные маркетинговые коммуникации: понятие и инструменты 40.09 KB
  Комплекс маркетинговых коммуникаций представляет собой единый комплекс коммуникационных компонентов объединяющий участников каналы и средства коммуникации и направленный на установление и поддержание взаимоотношений между организацией и маркетинговой средой в рамках достижения маркетинговый целей Маркетинговая коммуникация фирмы это комплексное воздействие фирмы на внутреннюю и внешнюю среду с целью создания благоприятных условий для стабильной прибыльной деятельности на рынке. Конечная цель любой стратегии маркетинговых коммуникаций...
45780. Социологические исследования в деятельности PR-специалиста 16.99 KB
  Количественные методы социологических исследований в PR:Наблюдение Наблюдение ещё один из видов методов социологического исследования. считает что наблюдение в социологии метод сбора информации путём непосредственного изучения социального явления в его естественных условиях. Особенности метода: Связь наблюдателя с объектом наблюдения.
45781. Элементы кристаллографии 159 KB
  Постоянная решётки, или, что то же самое, параметр решётки - размеры элементарной кристаллической ячейки кристалла. В общем случае, элементарная ячейка представляет собой параллелепипед с различными длинами рёбер, обычно эти длины обозначают как a, b, c. Но, в некоторых частных случаях кристаллической структуры, длины этих рёбер совпадают
45783. Региональные особенности территории Боснии и Герцеговины 701 KB
  Данная проблема является весьма актуальной и требует незамедлительного решения. Безработица в Боснии и Герцеговине составляет 20%, промышленное производство не достигло и 40% от довоенного уровня и развивается низкими темпами
45784. Сущность, цели и функции маркетинга 40.73 KB
  Нужды Исходной идеей лежащей в основе маркетинга является идея человеческих нужд. Потребности Второй исходной идеей маркетинга является идея человеческих потребностей. Состояния спроса и задачи маркетинга соответствующие этим состояниям 1.