21
КОМП’ЮТЕРНІ ПРОГРАМИ І МОВИ ПРОГРАМУВАННЯ 8 клас. Заняття 1. Частина 2. основи подійно- та об'єктно-орієнтованого програмування

комп’ютерні програми і мови програмування 2

Embed Size (px)

Citation preview

Page 1: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

КОМП’ЮТЕРНІ ПРОГРАМИ І МОВИ ПРОГРАМУВАННЯ

8 клас. Заняття 1. Частина 2.

Page 2: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Пригадаємо

• Інтегроване середовище програмування – це система програмування, що поєднує редактор для зручного введення і редагування програми, транслятор і налагоджувач помилок.

КомпіляторСинтаксичний

контроль всього тексту програми

Генератор машинного

кодуВхідна програма

Робоча програма

Повідомлення про помилки

Інтерпретатор

Покроковий синтаксичний контроль і виконання тексту програмиВхідна

програмаПовідомлення про помилки

Компілятор транслює

(переводить) програму в

машинний код

Інтерпретатор безпосередньо

виконує написану програму

Page 3: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Класифікація мов програмування

МОВИ ПРОГРАМУВАННЯ

За орієнтацією на клас задач

універсальні спеціалізовані

- мова розмітки- мова скриптів

За принципами програмування

- процедурні (імперативні)- непроцедурні- об’єктно-орієнтовані

За ступенем залежності від апаратних засобів

- низького рівня- високого рівня- надвисокого рівня

Page 4: комп’ютерні програми і мови програмування 2

ПАРАДИГМИ ПРОГРАМУВАННЯПарадигма – набір теорій, стандартів і методів, які спільно представляють собою спосіб бачення світу.

основи подійно- та об'єктно-орієнтованого програмування

Page 5: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Парадигма програмування• Парадигма програмування - це сукупність ідей і

понять, що визначають стиль написання комп'ютерних програм (підхід до програмування).

Це спосіб концептуалізації, який визначає, яким чином потрібно

проводити обчислення, та як має бути структурована та

організована робота комп’ютера по реалізації цих обчислень.

Page 6: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Ще раз про класифікацію МП

МОВИ ПРОГРАМУВАННЯ

ІМПЕРАТИВНІ (алгоритмічні мови)

Процедурні МП (Fortran, Pascal,

C, …)

Об’єктно-орієнтовані МП

(C++, Delphi, …)

ДЕКЛАРАТИВНІ (неалгоритмічні мови)

Мови логічного програмування

(Prolog, Mercury,…)

Мови функціонального програмування

(Lisp, Haskell, …)

Page 7: комп’ютерні програми і мови програмування 2

Парадигми програмування• Процедурне програмування. Програми містять код основної програми і

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

• Функціональне програмування. Програми написані за допомогою використання коду математичних функцій. Значення функцій розглядаються як окремі об'єкти, які не змінюються, а перетворюються в нові значення.

• Логічне програмування. Програми описуються виключно в термінах математичної логіки. Основним поняття є відношення. Логічна програма являє собою набір логічних декларацій, що описують проблему, яку необхідно вирішити.

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

основи подійно- та об'єктно-орієнтованого програмування

Page 8: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Перша МП високо рівня – Фортран в 1954-57 Дж.Бекусом, для того щоб математики могли програмувати на рівні формул.

Перша ООП МП - Smalltalk 1969 (початок розробки) Аланом Кеєм .

Еволюція мов програмування

Машинні коди Асемблер Процедурне програмування

Об’єктно-орієнтоване

програмування

Аспектно-орієнтоване

програмування

• Імперативні МПo Об’єктно-орієнтовані МП* Функціональні МП^ Логічні МП

Page 9: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Більшість сучасних мов програмування мультипарадигмальні

Page 10: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯПарадигма програмування, в якому основними концепціями є поняття об’єктів і класів.

Page 11: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Алан Кертис Кей – батько ООП

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

• Об'єкт як зберігає інформацію, так і здатний її перетворювати.

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

Фундаментальні характеристики ООП (1993 рік):

Page 12: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Об’єктно-орієнтоване програмування• Об’єктно-орієнтоване програмування (ООП) -

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

дані та надсилати повідомлення іншим об’єктам;• кожен об’єкт - своєрідний незалежний автомат з окремим

призначенням та відповідальністю.

•Основу ООП складають три основні концепції:

• інкапсуляція,• наслідування або успадкування• поліморфізм.

Page 13: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Інкапсуляція (приховуючи непотрібне)•Інкапсуляцією (лат. en capsula) називається упаковка даних і/або функцій в єдиний компонент.

•Значення речей, які ви не хочете, щоб інші люди/класи знали, повинні бути приховані.

•Наприклад, вчителю не потрібно знати, як учень готувався до уроку. Він більше зацікавлений в кінцевому результаті.

•Основна мета інкапсуляції – захист об'єктів від несанкціонованого доступу до даних.

Page 14: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Інкапсуляція. Класи. Об’єкти. • В результаті інкапсуляції (механізму об'єднання даних і процедур

по обробці цих даних) створюється «об'єкт».

•Об'єкт ― це конкретна реалізація класу.

•Наприклад,

• клас – це те як кіт влаштований;

• об'єкт – це кіт «Василь».

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

Page 15: комп’ютерні програми і мови програмування 2

Класи. Об’єкти. • Клас ― це програма або набір інструкцій для створення конкретного

типу об’єктів. Клас визначає як об'єкт буде вести себе і те, що об'єкт буде містити.

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

• Об'єкти складаються з атрибутів і методів. Атрибути є характеристиками, які визначають об'єкт; значення, що містяться в атрибутах диференціації об'єктів того ж класу один від одного.

• Атрибут – це характеристики, які визначають об'єкт; значення, що містяться в атрибутах диференціюють об'єкти того ж класу один від одного.

• Метод – це операції які об'єкт може виконувати; він визначає поведінку об’єкту і як об'єкт може взаємодіяти із зовнішнім світом.

основи подійно- та об'єктно-орієнтованого програмування

Page 16: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Класи. Об’єкти. КЛАС

Класифікація предметів за

спільними структурою,

властивостями, діями БУДІВЛЯ СОБАКА КОМП’ЮТЕР

ОБ’ЄКТ

Конкретний предмет (екземпляр), який

належить до якось з класів Емпая Стейт Лессі Твій комп’ютер

СТРУКТУРА (клас) Кількість поверхів… 4 лапи і хвіст,… ЦП, ОП, …

ВЛАСТИВІСТЬ Адреса і години праці Власне ім’я Назва моделі

МЕТОД (ДІЇ) «Розумна будівля» Гавкає Power

Page 17: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Наслідування (моделювання схожості)

• Наслідування – це механізм, коли один об'єкт набуває всі властивості і поведінку батьківського об'єкта, тобто успадковує.

•Наслідування забезпечує повторне використання коду.

•Наслідування використовується для досягнення виконання поліморфізму.

• Клас-нащадок(дочірній) може додати власні методи і властивості, а також користуватися батьківськими методами і властивостями.

• Наслідування дозволяє будувати ієрархію класів.

Page 18: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Поліморфізм (функція та сама, а поведінка різна)

• Поліморфізм – (від гр. «Багато форм») коли одна задача виконується різними способами.

Наприклад, всі тварини можуть пересуватися, а деякі навіть видавати звуки.

При такому описі будь якої тварини (риби, ворони, коня, …) її інтерфейс (те, що доступно при використанні класу зовні) містить в собі методи пересування і видання звуку.

Сила поліморфізму в тому, що різні випадки можна лікувати однаково.

Page 19: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Абстракція (усунути непотрібне, підсилюючи основне)

•Абстракція полягає в тому, щоб витягти основні відомості про об'єкт чи групу предметів, ігноруючи при цьому несуттєве деталі. Тільки суттєва інформація доступна користувачеві.

Власник кота

Ветлікар

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

• Використовуючи абстракції можна моделювати об'єкти реального світу.

• Принцип абстракції полягає в тому, щоб зосередитися на головному і відкинути недоречне.

Page 20: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

Резюме• Об'єкт є екземпляром класу.• Інкапсуляція забезпечує безпеку зберігання даних і

методів від випадкових змін.• Наслідування – це відносини батькодитина, які в

основному застосовуються для повторного використання коду.

• Визначення поліморфізму полягає в тому, що poli означає багато і morphos – форми.

• Абстракція забезпечує повторне використання коду.• Абстракція робить програму відкритою для

модифікацій і доповнень.

Page 21: комп’ютерні програми і мови програмування 2

основи подійно- та об'єктно-орієнтованого програмування

В словник