завантаження

Об'єктно-орієнтоване програмування. Програма лекцій. Основні принципи об'єктно-орієнтованого програмування ООП та структура об'єктно-орієнтованої програми Інкапсуляція Поліморфізм Спадкування Найбільш використовувані об'єктно-орієнтовані мови програмування.

Об'єктно-орієнтоване програмування

Стенограма презентації

Програма лекцій • Основні принципи об’єктно-орієнтованого ООП-програмування та структура об’єктно-орієнтованої програми Інкапсуляція Поліморфізм Спадкування • Найбільш використовувані об’єктно-орієнтовані мови програмування

Об'єктно-орієнтоване програмування • Це ефективний спосіб організації програми. • Основний принцип: програма складається з набору об’єктів, які здатні зберігати та обробляти дані та взаємодіяти з іншими об’єктами. • Історія: ЗІЗ виникли в той час, коли звичайні програми почали перевищувати певна тривалість та структурні програми стали заплутаними. Зазвичай застосовувався на початку 90-х • Основна перевага: добре продумана об’єктна структура програми дозволяє набагато краще орієнтуватися в коді

Принцип ЗІЗ • Філософія ЗІЗ базується на влаштуванні реального світу. • Основні поняття ЗІЗ: клас та об’єкт. • Три основні принципи: Інкапсуляція Поліморфізм Спадщина

Клас • Це структурований тип даних, що характеризується властивостями (дані, атрибути) та здібностями (методами) • Приклад: Клас людини • Властивості: ім’я, вік, зріст, вага, колір волосся. • Здатності: представити себе, сказати свій вік, міри тощо, запитати у іншої людини його ім’я, вік.

Об'єкт • Специфічний елемент класу, з чітко заданими характеристиками Янко Ковач Майка Новакова 45 років 35 років світло-каштанове волосся, 180 см каштанове волосся, 165 см

Об'єктно-орієнтована програма 2. Визначення методів Man: Write_your_data

Об'єктно-орієнтована програма 3. Створення та використання об'єктів Man Janko, Majka Janko.Zapíš_si_svoje_údaje Majka.Zapíš_si_svoje_údaje Janko.Predstav_sa Janko.Povedz_svoj_vek Janko.Povedz_svoju_výšku Majka.Predstav_sa Majka.Povedz_svoj_zved_zved_zvoj_zved_zved_zvoj_zved_zvoj_zved_vj_zvoj_v_v_v_v_v_v_v_v_v_v_v_v_v_v_v_v_v_v.

Об'єктно-орієнтована програма 4. Підйом Привіт, я Янко Ковач Привіт, я Майка Новакова Мені 45 років Мені 35 років У мене 180 сантиметрів У мене є 165 сантиметрів

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

Капсуляція Класна людина < verejné: znakový reťazec meno Predstav_sa >Чоловік Majka Majka.Predstav_sa Скажи “Привіт, я є” Majka.meno

Капсуляція Класна людина < súkromné: znakový reťazec meno verejné: Predstav_sa >Чоловік Majka Majka.Predstav_sa Скажи “Привіт, я є” Majka.meno 

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

Техніка приховування даних • Правильно розроблений клас людини Клас людини

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

Конструктор і деструктор • Модифікований клас Людина Клас людини

Поліморфізм • Це універсальність, відповідно. багатоцільове використання методів • Метод з однією назвою може використовуватися для різних типів даних або різної кількості входів, що полегшує орієнтацію в програмі 

Спадщина • Кожен клас може мати свого “дочірнього”, тобто клас, який походить від нього, приймає всі його дані та методи (крім конструктора та деструктора) • Похідний клас може бути нащадком будь-якої кількості класів, і кожен клас може мати будь-яка кількість нащадків • Для батьківського класу можна зробити свої приватні дані доступними для своїх нащадків, такі дані називаються захищеними, і, крім самого класу та його підкласів, вони не доступні ззовні

Спадщина Клас Їжа: ціна виробника дата споживання Клас Овочі: ціна виробника дата споживання Клас якості Клас Товари: ціна виробника Клас Взуття: ціна виробника Розмір

Спадщина Клас батьківський: загальнодоступний: Predstav_sa Povedz_adresu захищений: ім'я приватна адреса: PIN-код Клас Дочірній: Predstav_sa Povedz_adresu Povedz_zálnyného_zástupce ім'я адреса statutný_pepredce PIN - недоступний!

Спадщина Клас Подарунок: одного пре_кого Клас Товар: ціна додавала Клас: Рослина: завод_ім'я Клас Букет: ціна додавав ім'я_рослина від_кого пре_кого доставка_адреса

Віртуальні методи • Якщо метод батьківського класу віртуальний, це означає, що дитина, яка успадкувала його, може змінити його відповідно до своїх потреб Метод Уява: Мене звати Петро Словак Я живу в Братиславі Метод Уява: Мене звуть Міро Словаччина Я живу в Братиславі Мій батько є Пітер Словацький Метод Уява: Привіт, я Міро Словаччина Мій батько Пітер Словаччина

Дружні заняття • Кожен клас може дозволити іншим класам отримати доступ до своїх приватних даних, якщо вони позначають їх як дружній клас Батько: дружній клас Дочірній загальнодоступний: Imagine_protected: приватне ім'я: PIN Клас Дочірній: Imagine_legal_representative name legal_representative PIN

Резюме • Об’єктно-орієнтоване програмування - це спосіб ефективної організації програми, при якому програма являє собою набір взаємодіючих об’єктів • У повністю об’єктно-орієнтованій програмі всі дані та функції (крім основної програми та глобальних змінних) є частиною класу • Основними принципами об’єктно-орієнтованого програмування є: Спадщина поліморфізму інкапсуляції

Об’єктно-орієнтовані мови • Simula (1967) - перша мова ОО, що використовується для моделювання в побудові інтегральних схем, комп’ютерної графіки, освіти тощо. • C ++ (1983) - одна з найпоширеніших комерційно використовуваних мов з багатьма програмами, дозволяє ОО та процедурне програмування. • Common Lisp - мова, що дозволяє дуже загальні операції, з великою кількістю типів даних, що використовується для програмування Інтернет-програм, дизайнерське програмне забезпечення, ігри тощо. • Java (1995) - мова, розроблена для запуску програм на різних платформах та з віддалених джерел, із вбудованою мережевою підтримкою • JavaScript (1995) - мова сценаріїв (інструкції виконуються безпосередньо з коду, без компіляції), розроблена для створення Інтернету додатки • Perl (1987) - динамічна мова, спочатку розроблена для обробки текстів, сьогодні вона використовується при програмуванні Інтернет-додатків, в управлінні системою тощо, ефективна в маніпуляціях рядками та керуванні пам'яттю

Об’єктно-орієнтовані мови • PHP (1994) - відображає мова програмування (програма може змінювати свою структуру під час виконання), що використовується переважно при веб-розробці. • Python (1980) - мова, що підтримує різні техніки програмування, з акцентом на легко читається код, багато програмне забезпечення використовує його як свою мову сценаріїв • Smalltalk (1970) - відбивна мова OO, спочатку розроблена для навчальних цілей, але згодом також знайшла багато комерційного застосування. • Visual Basic - мова, керована подіями (робота програми залежить від взаємодії користувача), має дуже широке використання в бізнес-додатках • TCL - мова сценаріїв з простим синтаксисом, розроблена з метою стати частиною різних програм