Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpori_oop.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
441.86 Кб
Скачать
  1. Об'єктно-орієнтовані мови. Основні принципи об'єктно-орієнтованого програмування.

об’єктно-орієнтованим програмуванням (ООП), було створено для управління зростаючою складністю програм. ООП організує програму навколо її даних (тобто навколо об’єктів) і набору чітко визначених інтерфейсів з цими даними. Об’єктно-орієнтовану про­граму можна характеризувати як доступ до коду, що управляється даними (data controlling access to data). Як ми побачимо далі, такий підхід має деякі організаційні переваги, а саме:

  1. Можна повторно використовувати код програми і таким чином економити час на розробку.

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

  3. Програми з використанням ООП легко тестувати і модифікувати. Мож­на розбити програму на компоненти і тестувати роботу кожної з них.

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

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

Інкапсуляція – це механізм, який пов’язує код з даними, що ним обробляються, та зберігає їх як від зовнішнього впливу, так і від помилкового використання. Інкапсуляцію можна уявити як захисну оболонку, яка запобігає доступу до коду та даних з іншого коду, що знаходиться зовні цієї оболонки. Основою абстракціі та інкапсуляції в Java є клас. Клас визначає струк­­туру та поведінку (дані і код) деякого набору об’єктів. Кожен об’єкт заданого класу містить як структуру (дані), так і поведінку, що визна­чається класом (так, як би ці об’єкти було проштамповано шаблоном у формі класу). Тому об’єкт іноді ще називають екземпляром класу. Успадкування (наслідування) – це процес, за допомогою якого один об’єкт отримує властивості іншого об’єкта. Воно важливе, тому що під­тримує концепцію ієрархічної класифікації. Переважною частиною знань можна управляти лише за допомогою ієрархічних (тобто організованих “згори донизу”) класифікацій. Без застосування класифікацій кожен об’єкт потребував би явного визначення всіх своїх характеристик. Завдяки вико­рис­танню ус­пад­кування об’єкт потребує визначення лише тих якостей, які роблять його уні­кальним у власному класі. Поліморфізм (грецькою ”polymorphos” – множинність форм) – влас­ти­вість, яка дозволяє використовувати один інтерфейс для спільного класу дій. Специфічна дія точно визначається в залежності від конкретної ситу­а­ції. Наприклад, розглянемо стек (список типу LIFO – Last-In, First-Out; ос­тан­нім увійшов, першим вийшов). Програма може потребувати три типи стеків. Один стек використовується для цілих чисел, другий – для чисел з плаваючою крапкою, третій – для символів. Алгоритм, який реалізує кожен стек, один і той самий, хоча дані, що зберігаються, різні. Не об’єктно-орієнтована мова вимагала б створення трьох різних стекових підпрограм, кожна з яких мала б своє власне ім’я. Завдяки поліморфізму в мові Java можна визначити спільний для всіх типів даних набір стекових підпрограм, що використовують одне і те саме ім’я.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]