1. Інкапсуляція, C / C + +, Програмування, статті

Інкапсуляція (encapsulation) – це механізм, який об’єднує дані і код, маніпулює зтім даними, а також захищає і те, і інше від зовнішнього втручання або неправильного використання. В об’єктно-орієнтованому програмуванні код і дані можуть бути об’єднані разом; в цьому випадку кажуть, що створюється так званий “чорний ящик”. Коли коди і дані об’єднуються таким способом, створюється об’єкт (object). Іншими словами, об’єкт – Це те, що підтримує інкапсуляцію.


Усередині об’єкту коди і дані можуть бути закритими (private). Закриті коди або дані доступні тільки для інших частин цього об’єкта. Таким чином, закриті коди і дані недоступні для тих частин програми, які існують поза об’єктом. Якщо коди і дані є відкритими, то, незважаючи на те, що вони задані усередині об’єкту, вони доступні і для інших частин програми. Характерною є ситуація, коли відкрита частина об’єкту використовується для того, щоб забезпечити контрольований інтерфейс закритих елементів об’єкта.


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

2. Поліморфізм


Поліморфізм (polymorphism) (від грецького polymorphos) – це властивість, яке дозволяє одне і те ж ім’я використовувати для вирішення двох або більше схожих, але технічно різних завдань. Метою поліморфізму, стосовно об’єктно-орієнтованого програмування, є використання одного імені для завдання загальних для класу дій. Виконання кожного конкретного дії буде визначатися типом даних. Наприклад для мови Сі, в якому поліморфізм підтримується недостатньо, знаходження абсолютної величини числа вимагає трьох різних функцій: abs (), labs () і fabs (). Ці функції підраховують і повертають абсолютну величину цілих, довгих цілих і чисел з плаваючою точкою відповідно. В С + + кожна з цих функцій може бути названа abs (). Тип даних, який використовується при виконанні функції, визначає, яка конкретна версія функції дійсно виконується. В С + + можна використовувати одне ім’я функції для безлічі різних дій. Це називається перевантаженням функцій
(function overloading).


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


Поліморфізм може застосовуватися також і до операторів. Фактично в усіх мовах програмування обмежено застосовується поліморфізм, наприклад, в арифметичних операторах. Так, в Сі, символ + використовується для складання цілих, довгих цілих, символьних змінних і чисел з плаваючою крапкою. В цьому випадку компілятор автоматично визначає, який тип арифметики потрібно. В С + + ви можете застосувати цю концепцію і до інших, заданим вами, типам даних. Такий тип поліморфізму називається перевантаженням операторів (operator
overloading).


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

3. Наследовніе


Спадкування (inheritance) – це процес, за допомогою якого один об’єкт може набувати властивостей іншого. Точніше, об’єкт може успадковувати основні властивості іншого об’єкту і додавати до них риси, характерні тільки для нього. Спадкування є важливим, оскільки воно дозволяє підтримувати концепцію ієрархії класів (hierarchical classification). Застосування ієрархії класів робить керованими великі потоки інформації. Наприклад, подумайте про опис житлового будинку. Будинок – це частина загального класу, званого будовою. З іншого боку, будова – це частина більш загального класу – конструкції, який є частиною ще більш загального класу об’єктів, який можна назвати створенням рук людини. В кожному випадку породжений клас успадковує все, пов’язані з батьком, якості і додає до них свої власні визначальні характеристики. Без використання ієрархії класів, для кожного об’єкта довелося б задати всі характеристики, які б ісчерпивающи його визначали. Однак при використанні успадкування можна описати об’єкт шляхом визначення того загального класу (або класів), до якого він належить, з тими спеціальними рисами, які роблять об’єкт унікальним. Спадкування відіграє дуже важливу роль в OOP.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*