АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ОБ’ЄКТНО ОРІЄНТОВАНИЙ ПІДХІД_____________________________________________________

Читайте также:
  1. Тема 1. Повторення загальних принципів об’єктно-орієнтованого програмування

 

Основоположною ідеєю ООП є об’єднання даних і дій, що проробляються над цими даними, в одне ціле, яке називається об’єктом.

Функції об’єкту, що називаються методами (інша назва – функції-члени), звичайно призначені для доступу до даних об’єкта (приклад – проводимо мишкою над екранною кнопкою і вона змінює свій розмір та колір). Якщо необхідно зчитати якісь дані об’єкту, треба викликати відповідний метод, що виконає зчитування і поверне потрібне значення. Прямий доступ до даних неможливий. Дані приховані від зовнішнього впливу, що захищає їх від випадкової зміни. Кажуть, що дані і методи інкапсульовані. Терміни приховування та інкапсуляція даних є ключовими в описі об’єктно орієнтованих мов.

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

Типова програма на об’єктно-орієнтованій мові програмування, наприклад, на С++, складається з сукупності об’єктів, що взаємодіють між собою, викликаючи методи один одного. Структура такої програми приведена на рисунку 2.

Рис. 2. Об’єктно-орієнтований підхід

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

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

У основі ООП лежить поняття об'єкту (object).

Об'єкт - це тип, який включає не тільки поля даних об'єкту, але і підпрограми для їх обробки, звані методами. Таким чином, в об'єкті зосереджені його властивості (стани, дані) і їх поведінка (обробка за допомогою методів). Ідеї створення нового типу (об'єкт) були закладені при введенні процедурних типів параметрів.

 
Що повинне представлятися в програмі у вигляду об’єктів? Це залежить від типу задачі і уяви розробника. Можливі такі варіанти: Ø Фізичні об’єкти · Автомобілі при моделюванні вуличного руху · Елементи схеми при моделюванні електромережі · Країни при створенні економічної моделі Ø Елементи інтерфейсу · Вікна · Кнопки · Меню · Випадаючі списки · Поля введення і поля редагування · Графічні об’єкти (лінії, прямокутники, круги) · Миша, клавіатура, дискові пристрої, принтери Ø Структури даних · Масиви · Стеки · Черги · Дерева Ø Групи людей · Співробітники · Студенти · Покупці · Продавці Ø Сховища даних · Інвентарні описи · Перелік номенклатур · Списки співробітників
 
     

Клас - опис сукупності подібних між собою об'єктів.

 
Коли ми говоримо про об’єкти, то кажемо, що вони є екземплярами класів. Розглянемо таку аналогію. Практично всі комп’ютерні мови мають стандартні типи даних, у мові С є цілий тип int. Ми можемо визначити змінні таких типів у наших програмах: int day; int divisor; int n; Так описані змінні відразу дістають певні властивості (наприклад, розмір sizeof), визначаються операції, які можна з ними проводити (додавання, віднімання, множення, ділення націло, остача від ділення). Подібним способом ми можемо визначати об’єкти класу, як це показано на рисунку 3. Клас є свого роду формою, що визначає, які дані і функції будуть включені в об’єкт класу. При оголошенні класу не створюються ніякі об’єкти цього класу, по аналогії з тим, що існування типу int ще не означає існування змінних цього типу. Рис.3 Клас і його об’єкти Таким чином, клас є описом сукупності схожих між собою об’єктів. Об’єкт класу часто називають також екземпляром класу.
 
     

ООП характеризується трьома основними властивостями:

ü інкапсуляцією (encapsulation),

ü спадкоємством (inheritance),

ü поліморфізмом (polymorphism).

Інкапсуляція означає об'єднання в одному об'єкті даних і дій над ними.

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

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

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

 
Успадковування - це можливість використання вже певних об'єктів, що дозволяє створювати ієрархію об'єктів починаючи з деякого простого первинного (предка) і закінчуючи складнішими, такими, що включають (що успадковують) властивості попередніх елементів ієрархії (предків). Ця ієрархія може мати складну ієрархічну структуру. Кожен нащадок несе в собі характеристики свого предка (містить ті ж дані і методи), а також володіє власними характеристиками (даними і методами). Включені в об'єкт підпрограми (методи), як правило, оперують з даними цього об'єкту або звертаються до методів об'єктів-предків. Деякі об'єкти програми, що особливо знаходяться на початку ієрархічного дерева, можуть і не відповідати яким-небудь реальним об'єктам. Вони лише указують на деякі властивості інших, реальних, об'єктів. Проте виявлення цих загальних властивостей в окремі об'єкти буває зручно, оскільки дозволяє потім не повторювати їх багато разів при описі реальних об'єктів. Такі об'єкти називаються абстрактними, і змінних таких типів в програмі не буває. Вони повинні бути довизначені (і доповнені) в нащадках.
 
     

У програмуванні клас може породити безліч підкласів. У С++ клас, що породжує всі інші класи, називається базовим класом, інші класи успадковують його властивості, одночасно маючи власні. Такі класи називаються похідними.

Базовий клас містить елементи, загальні для групи похідних класів.


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)