МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Об'єктно-орієнтоване програмуванняВ міру розвитку обчислювальної техніки виникали різні концепції програмування. На кожному етапі створювався новий підхід, що допомагав програмістам справлятися зі зростаючим ускладненням програм. Перші програми створювалися за допомогою ключових перемикачів на передній панелі комп'ютера. Очевидно, що такий спосіб підходить тільки для дуже невеликих програм. Потім була винайдена мова асемблера, що дозволяла писати довші програми. Використовуючи мову високого рівня, наприклад FORTRAN програмісти могли писати програми до кількох тисяч рядків довжиною. Для того часу такий підхід до програмування був найбільш перспективним. Однак мова програмування, що розумілася легко в коротких програмах, у великих програмах ставала нечитабельною (і некерованою). Порятунок від таких неструктурованих програм прийшов після винаходу в 1960 р. мов структурного програмування. До них належать мови Алгол, Паскаль і С. Структурне програмування має на увазі точно позначені керуючі структури, програмні блоки, відсутність (чи, принаймні, мінімальне використання) операторів GОТО, автономні підпрограми, у яких підтримується рекурсія і локальні змінні. Суттю структурного програмування є можливість розбивки програми на її складові елементи. Використовуючи структурне програмування, середній програміст може створювати і підтримувати програми понад 50000 рядків довжиною. Хоча структурне програмування, при його використанні для написання помірно складних програм, принесло гарні результати, воно виявлялося недієвим, коли програма досягала певної довжини. Щоб написати більш складну програму, необхідний був новий підхід до програмування. Як наслідок було розроблено принципи об'єктно-орієнтованого програмування (ООП). ООП акумулює найкращі ідеї, втілені в структурному програмуванні, і поєднує їх з могутніми концепціями, які дозволяють оптимально організовувати програми. Об'єктно-орієнтоване програмування дозволяє розкласти проблему на пов'язані між собою задачі. Кожна проблема стає самостійним об'єктом, що містить свої власні коди і дані, які належать до цього об'єкта. У цьому разі вся процедура в цілому спрощується і програміст одержує можливість оперувати з набагато більшими за обсягом програмами. Усі мови ООП, включаючи С++, ґрунтуються на трьох основних концепціях: інкапсуляції, поліморфізмі і спадкуванні. Розглянемо ці концепції. Інкапсуляція - це механізм, що поєднує дані і код, який маніпулює з цими даними, і захищає те й інше від зовнішнього втручання чи неправильного використання. В об'єктно-орієнтованому програмуванні код і дані можуть бути об'єднані разом; у цьому випадку кажуть, що створюється так звана «чорна скринька». Усі необхідні дані і коди перебувають усередині неї. Коли коди і дані поєднуються таким чином, створюється об'єкт. Іншими словами, об'єкт - це те, що підтримує інкапсуляцію. Насправді об'єкт є змінною визначеного користувачем типу. Може здатися дивним, що об'єкт, який поєднує коди і дані, можна розглядати як змінну. Однак стосовно об'єктно-орієнтованого програмування це саме так. Кожен елемент даних такого типу є складеною змінною. Поліморфізм - це властивість, яка дозволяє те саме ім'я використовувати для розв'язання двох чи більше задач, технічно різних. Метою поліморфізму, стосовно ООП, є використання одного імені для завдання загальних для класу дій. Виконання кожної конкретної дії буде визначатися типом даних. Наприклад, для мови С, у якій поліморфізм підтримується недостатньо, віднайдення абсолютної величини числа вимагає трьох різних функці.Ці функції підраховують абсолютну величину цілих, довгих цілих і чисел із плаваючою крапкою відповідно. У С++ кожна з цих функцій може бути названа тільки однією абривіатурою аbs. У С++ можна використовувати одне ім'я функції для безлічі різних дій. Це називається перевантаженням функції. У більш загальному сенсі, концепцією поліморфізму є ідея «один інтерфейс, безліч методів». Це означає, що можна створити загальний інтерфейс для групи близьких за змістом дій. При цьому виконання конкретної дії залежить від даних. Перевагою поліморфізму є те, що він допомагає знижувати складність програм, дозволяючи використання того ж інтерфейсу для задавання єдиного класу дій. Вибір же конкретної дії, залежно від ситуації, покладається на компілятор. Вам, програмісту, не потрібно робити цього вибору самому. Потрібно тільки пам'ятати і використовувати загальний інтерфейс. Ключовим у розумінні поліморфізму є те, що він дозволяє маніпулювати об'єктами різного ступеня складності шляхом створення спільного для них стандартного інтерфейсу для реалізації схожих дій. Спадкування – це процес, за допомогою якого один об'єкт може набувати властивостей іншого. Точніше, об'єкт може успадковувати основні властивості іншого об'єкта і додавати до них риси, характерні тільки для нього. Спадкування є важливим, оскільки воно дозволяє підтримувати концепцію ієрархії класів. Застосування ієрархії класів робить керованими великі потоки інформації. Наприклад, опис житлового будинку. Будинок - це частина загального класу, називаного будівлею. З іншого боку, будівля - це частина більш загального класу конструкція, що є частиною ще більш загального класу об'єктів, якому можна назвати створенням рук Людини. У кожному випадку породжений клас успадковує всі, пов'язані з батьком, якості і додає до них свої власні визначальні характеристики. Без використання ієрархії класів, для кожного об'єкта довелося б задати всі характеристики, які б вичерпно його визначали.
|
||||||||
|