Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Конспект лекцій для студентів напряму підготовки 050101 «Комп’ютерні науки» денної форми навчання Луцьк 2015

Конспект лекцій для студентів напряму підготовки 050101 «Комп’ютерні науки» денної форми навчання Луцьк 2015




Сторінка1/6
Дата конвертації13.03.2017
Розмір0.67 Mb.
ТипКонспект
  1   2   3   4   5   6

Міністерство освіти і науки України
опис : lntu_logo_20x20_cm new! (1)

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

Конспект лекцій для студентів напряму підготовки

6.

Студе́нт (лат. studens, родовий відмінок studentis - «ретельно працюючий», «такий, що займається») - учень вищого, у деяких країнах і середнього навчального закладу.
050101 «Комп’ютерні науки»

денної форми навчання

Луцьк 2015

УДК 004.42(07)

О13
До друку________________Голова Навчально-методичної ради Луцького НТУ

(підпис)
Електронна копія друкованого видання передана для внесення в репозитарій Луцького НТУ________________директор бібліотеки.

(підпис)
Затверджено Навчально-методичною радою Луцького НТУ,

протокол № від «__» 2015 року.


Рекомендовано до видання Навчально-методичною радою факультету КНІТ Луцького НТУ, протокол № від « »2015 року.
Друка́рство - принцип одержання відбитків письмових знаків за допомогою тиснення. Отримані таким чином роботи можна використовувати у великих кількостях - що і стало суттю друкарства. До цього винаходу, на створення та відтворенням рукописних документів і книг мали монополію лише невелика кількість фахівців (особливо освічені ченці монастирях).
Факульте́т (нім. Fakultät, від лат. facultas - спроможність, здатність) - основний організаційний і навчально-науковий структурний підрозділ вищого навчального закладу третього та четвертого рівнів акредитації, що об'єднує відповідні кафедри і лабораторії.


________________Голова навчально-методичної радифакультетКНІТ

(підпис)
Розглянуто і схвалено на засіданні кафедри КТ Луцького НТУ,


протокол № від « » 2014року.

Укладач: _____________ А.А.Ящук, асистент кафедри КТ Луцького НТУ,

(підпис)

_____________П.В. Саварин асистент кафедри КТ Луцького НТУ

(підпис)
Рецензент: ____________ Р.Г.Редько, кандидат технічних наук, доцент Луцького НТУ

(підпис)
Відповідальний

за випуск: __________ О.О.

Технічні науки - науки, що вивчають закономірності розвитку техніки і визначають способи найкращого її використання.
Герасимчук, кандидат технічних наук, доцент Луцького НТУ

(підпис)


Об’єктно-орієнтоване програмування[Текст] : конспект лекцій для студентів напряму підготовки 6.
Нау́ка - сфера діяльності людини, спрямована на отримання (вироблення і систематизацію у вигляді теорій, гіпотез, законів природи або суспільства тощо) нових знань про навколишній світ. Основою науки є збирання, оновлення, систематизація, критичний аналіз фактів, синтез нових знань або узагальнень, що описують досліджувані природні або суспільні явища та (або) дозволяють будувати причинно-наслідкові зв'язки між явищами і прогнозувати їх перебіг.
050101 «Комп’ютерні науки» денної форми навчання/ уклад. А.А.Ящук, П.В.Саварин. – Луцьк : Луцький НТУ, 2015. –52с.

Видання містить необхідний теоретичний матеріал, з основ програмування, який дасть можливість студентам засвоїти навчальний матеріал з мінімальними витратами часу.

Тео́рія (від грец. θεωρία - розгляд, дослідження) - сукупність висновків, що відображає відносини і зв'язки між явищами реальності у вигляді інформаційноі моделі. Теорією стає гіпотеза, що має відтворюване підтвердження явищ та механізмів і дозволяє спостерігачу прогнозувати наслідки дій чи зміни стану об'єкта спостережень.
Можливість - це дія, що може відбутися або ні (можливо, приїду, а, можливо, і ні). Можливість можна забезпечити чи покладатись на «авось» та якось буде. Альтернатива дає шанс, але не гарантує без відповідних дій забезпечення результату і адекватності та конструктиву діяльності.


Призначенедля студентів напряму підготовки 6.050101 «Комп’ютерні науки» денної форми навчання.
© А.А.Ящук, П.В.Саварин 2014




Вступ

«Об’єктно-орієнтоване програмування» належить до циклу професійної та практичної підготовки студентів напряму «Комп’ютерні науки» освітньо-кваліфікаційного рівня «бакалавр».

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

Дисциплíна (лат. disciplina - навчання, виховання) - багатозначне поняття.
Спеціальність (лат. specialis - особливий; від species - род, вид) - комплекс набутих людиною знань і практичних навичок, що дає їй можливість займатися певним родом занять у якійсь галузі діяльності.
Майбутнє - суб'єктивна з людського погляду й об'єктивна з погляду стороннього спостерігача часова категорія сприйняття реальності, яка характеризується комплексом явищ і подій, що не здійснились і не відбулися відносно об'єкта, який перебуває в більш ранньому часі.
Профе́сія (фах) - відокремлений («окреслений») у рамках суспільного поділу праці комплекс дій та відповідних знань, що вимагає відповідної освіти.
Інформаці́йні техноло́гії, ІТ (використовується також загальніший / вищий за ієрархією термін інформаційно-комунікаційні технології (Information and Communication Technologies, ICT) - сукупність методів, виробничих процесів і програмно-технічних засобів, інтегрованих з метою збирання, опрацювання, зберігання, розповсюдження, показу і використання інформації в інтересах її користувачів.
опанування програмуванням на початку курсу навчання гарантує перехід до основних і поглиблених дисциплін, споріднених з програмуванням; навчити студентів використовувати основні прийоми об’єктно-орієнтованого програмування з урахуванням сучасних концепцій і тенденцій розвитку технологій програмування, навчити розв’язувати реальні науково-технічні задачі різної складності за допомогою комп’ютерів.
Лекція 1. Введення в дисципліну. Парадигми програмування.
Конце́пція (лат. conceptio - розуміння) - система поглядів, те або інше розуміння явищ і процесів; єдиний, визначальний задум.
Паради́гма програмува́ння - це система ідей і понять, які визначають стиль написання комп'ютерних програм, а також спосіб мислення програміста.
Основні поняття ООП

Усе програмування прийнято поділяти на два основних види:

декларативне;

імперативне.

Декларативне програмування – термін з двома різними значеннями. Згідно з першим визначенням, програма «декларативна», якщо вона описує щось, а не як його створити.

Терміноло́гія - це: Сукупність термінів, тобто слів або словосполучень, що висловлюють специфічні поняття з певної галузі науки, техніки чи мистецтва, а також сукупність усіх термінів, наявних у тій чи іншій мові.
Програма (фр. programme письмове оголошення, порядок денний, від грец. prógramma вказівка) - заздалегідь затверджена (визначена) дія.
Озна́чення, ви́значення чи дефіні́ція (від лат. definitio) - роз'яснення чи витлумачення значення (сенсу) терміну чи поняття. Слід зауважити, що означення завжди стосується символів, оскільки тільки символи мають сенс що його покликане роз'яснити означення.
Згідно з другим визначенням, програма «декларативна», якщо вона написана на виключно функціональній, логічній або константній мові програмування.

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

Необхідність - система зв'язків і відносин, що зумовлює зміну, поступальний рух, розвиток у жорстко визначеному напрямку з жорстко визначеними результатами. Іншими словами, необхідність - це такий зв'язок, що обов'язково призводить до певної події.
Результат, пі́дсумок, (заст. ску́ток, вислід) - кінцевий наслідок послідовності дій. Можливі результати містять перевагу, незручність, вигоду, збитки, цінність і перемогу. Результат є етапом діяльності, коли визначено наявність переходу якості в кількість і кількості в якість.
Інструкція - правовий акт, який створюється органами державного управління для встановлення правил, що регулюють організаційні, науково-технічні, технологічні, фінансові та інші спеціальні сторони діяльності та відносин установ, закладів, підприємств, службових осіб.
Мовозна́вство, також лінгві́стика - наука, що вивчає мову в усій складності її прояву; наука про мову взагалі й окремі мови світу як індивідуальних її представників. Це гуманітарна наука, яка є розділом культурології (нарівні з мистецтвознавством і літературознавством) і філології (нарівні з літературознавством), а також галуззю семіотики.
Мо́ва програмува́ння (англ. Programming language) - це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.
Наказовий спосіб або імператив (лат. modus imperativus) - спосіб дієслова, що виражає волевиявлення (наказ, прохання або пораду).

Парадигма програмування – це спосіб мислення розробника програми. Мова програмування може підтримувати або не підтримувати ту чи іншу парадигму. В першому випадку застосування парадигми стає зручним, тобто простим, безпечним і ефективним. Ми розглянемо три основних наказових парадигми – процедурне, об’єктне (модульне) і об’єктно-орієнтовне (ієрархічне) програмування.

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

Програміст, також програмник[Джерело?] - фахівець, що займається програмуванням, виконує розробку програмного забезпечення (в простіших випадках - окремих програм) для програмованих пристроїв, які, як правило містять один чи більше CPU.
Алгори́тм (латинізов. Algorithmi за араб. ім'ям узб. математика аль-Хорезмі) - набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час.
В останньому випадку передбачається наявність механізмів передачі параметрів і поверненні результату.
Механі́зм (грец. μηχανή mechané - машина) - система тіл, що призначена для перетворення руху одного або декількох тіл у потрібний рух інших тіл. Механізм складає основу більшості машин і застосовується в різноманітних технічних об'єктах.

Спочатку процедурне програмування користувалося довільними засобами керування, в тому числі, переходом за міткою – одним з найбільш вживаних операторів керування в Фортрані.

До мов процедурного програмування відносяться Fortran, Cobol, Pascal, Basic, та інші.

В 1968 році голландський вчений Е. Дейкстра вперше звернув увагу на проблеми, що виникають у програмах з неконтрольованими переходами, в 1970 році проголосив новий напрямок, який він назвав структур(ова)ним програмуванням.

Структурне програмування – це варіант процедурного, що вживає три типи структур керування: послідовне виконання дій, розгалуження і цикл. Не дивно, що Фортран не підтримував цю парадигму – в наборі його засобів не було циклів за умовами. Починаючи з Алголу, а особливо в Паскалі, цикли стають основним засобом організації обчислень в програмі.

Обчи́слення - є гілкою математики, зосередженою на функціях, похідних, інтегралах, і нескінченному ряду чисел. Цей предмет являє собою важливу частину сучасної математичної освіти. Воно складається з двох основних галузей - диференціального і інтегрального численнь, які пов'язують основні теореми обчислення.
Голландці, також нідерландці (нід. Nederlanders вимоваопис файлу, також Nederlandse volk) - нація, основне населення Нідерландів. Чисельність у Нідерландах становить близько 13 млн. осіб, крім того, групи голландців проживають в інших країнах світу, переважно у США і Канаді.
Організа́ція (від грец. ὄργανον - інструмент) - цільове об'єднання ресурсів для досягнення певної мети.

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

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

Віртуальна машина - модель обчислювальної машини, створеної шляхом віртуалізації обчислювальних ресурсів: процесора, оперативної пам'яті, пристроїв зберігання та вводу і виводу інформації.
Головним критерієм, вжитим Б.Керніганом і Д.Річі до створеної ними мови С, стала саме гнучкість використання особливостей конкретної апаратури і ефективність виконання програм.

Об'єктне (модульне) програмування. Процедурна парадигма віддала належне алгоритмічній компоненті програмування. Але з ростом обсягу програм і складності даних з'явилася нова проблема структурної організації даних, найбільш ємко висловлена Віртовською формулою “алгоритми структури даних = програми”.

Крите́рій (від лат. critērium, яке зводиться до грец. χριτήριον - здатність розрізнення; засіб судження, мірило, пов'язаного з грец. χρινω - розділяю, розрізняю) - мірило, вимоги, випробування для визначення або оцінки людини, предмета, явища; ознака, взята за основу класифікації.
В програмуванні та комп'ютерних науках структу́ри да́них - це способи організації даних в комп'ютерах. Часто разом зі структурою даних пов'язується і специфічний перелік операцій, що можуть бути виконаними над даними, організованими в таку структуру.

Поняття модуля як абстракції даних було вперше запропоноване Парнасом у 1972 році, правда на той час уже існувала мова програмування Симула 67, в якій використовувалася парадигма об'єктів.

Абстра́кція (лат. abstractio - відвернення, відволікання) - одна з основних операцій мислення, а також метод наукового дослідження, що полягає в тому, що суб'єкт, відокремлюючи які-небудь ознаки об'єкту, що вивчається, відволікається від інших, не враховуються його неістотні сторони і ознаки.
У найбільш повному виді поняття абстракції даних було реалізоване в мові програмування
Модула-2.

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

Об'єктно-орієнтована парадигма наділила класи ієрархією. Об'єктно-орієнтоване програмування за метафорою Б.

Ієра́рхія (грец. ίεράρχίά, від ίερσς - священний, та άρχή - влада) - поділ на вищі й нижчі посади, чини; суворий порядок підлеглості нижчих щодо посади або чину осіб вищим. В ієрархії між її членами діють вертикальні зв'язки - відносини субординації.
Мета́фора (грец. μεταφορά - «перенесення») - один із основних тропів поетичного мовлення. У метафорі певні слова та словосполучення розкривають сутність одних явищ та предметів через інші за схожістю чи контрастністю.
Страуструпа, автора С – однієї з найпопулярніших мов об'єктно-орієнтованого програмування, – це високоінтелектуальний синонім доброго програмування. Дійсно, нові парадигми програмування з'являються не так часто, не частіше однієї в десятиліття. Той факт, що об'єктно-орієнтована парадигма успішно використовується протягом 20 років, сам по собі служить вагомим підтвердженням її життєздатності.

Алгоритми, реалізовані в процедурному програмуванні, надто конкретні. Будь-яка модифікація – це вже новий алгоритм і таким чином кількість процедур і функцій, що знаходяться у використанні, надмірно зростає.

Десятилі́ття, також - десятиріччя, декада - під десятиліттям найчастіше розуміють календарне десятиліття, період часу, що включає десять років.
Кількість - в Арістотелівській логіці друга з 10 категорій (класів, розрядів, які спрощують процес розумового визначення будь-якої речі), побічна обставина матеріальних речей , за допомогою якої вони поширюються в просторі, вимірюються якоюсь математичною нормою і здатні бути поділеними на окремі частини.
Модульне програмування групує алгоритми в модулі, одночасно інкапсулюючи структури даних. Тепер залишається зробити наступний крок – побудувати ієрархію модулів або класів.

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

Многоку́тник[К 1] (багатоку́тник, поліго́н) - геометрична фігура, замкнена ламана (сама, або разом із точками, що лежать усередині). Вершини цієї ламаної називають вершинами многокутника, а відрізки ламаної - сторонами многокутника.
Многогр́анник, багатогра́нник - геометрична фігура (геометричне тіло), частина тривимірного евклідового простору, обмежена замкненою поверхнею, яка складається з плоских многокутників, які називаються гранями многогранника.
Чотирикутник - це частина площини, обмежена простою замкненою ламаною, яка містить чотири (4) ланки. Вона складається з чотирьох (4) вершин (точок) і чотирьох сторін (відрізків), що послідовно їх сполучають.
Той факт, що квадрат, ромб, прямокутник є повноцінними паралелограмами дозволяє їм користуватися усіма програмними засобами, створеними для паралелограма, паралелограм в свою чергу є повноцінним чотирикутником і так далі. Цей принцип, відомий під назвою reusable – знову вживаний – став одним з найважливіших досягнень об'єктно-орієнтованої парадигми. Знову вживаючи вже існуюче програмне забезпечення в більш конкретизованих умовах, ми дописуємо лише ту його частину, яка стосується особливостей наявної конкретизації.
Принцип (лат. principium - начало, основа) - це твердження, яке сприймається як головне, важливе, суттєве, неодмінне або, принаймні, бажане. У повсякденному житті принципами називають внутрішні переконання людини, ті практичні, моральні та теоретичні засади, якими вона керується в житті, в різних сферах діяльності.
Паралелогра́м - чотирикутник, протилежні сторони якого попарно паралельні.
Прямоку́тник - це чотирикутник, усі кути якого прямі. Протилежні сторони прямокутника рівні. Є окремим випадком паралелограма.
Програ́мне забезпе́чення (програ́мні за́соби) (ПЗ; англ. software) - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм.
Цей принцип дістав назву programming by difference або дописування програм.

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

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

Сьогодні в сімействі мов об'єктно-орієнтованого програмування три найбільш відомих представника: С , Java і C# ( читається Сі шарп ). С і сьогодні залишається визнаним лідерів в розробці великих і складних програмних систем. Java і C# виросли з С . Вони мають свою сферу застосування в розподіленому програмуванні і будуть вивчатися нами пізніше.

Основні поняття ООП

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

Су́тність (есенція) - філософська категорія, що виражає головне, основне, визначальне в предметі, таке що зумовлене глибинними, необхідними, внутрішніми зв'язками й тенденціями розвитку і пізнається на рівні теоретичного мислення.
Атрибу́т (attribute) - невід'ємна, необхідна для забезпечення цілісності об'єкта (предмета) або суб'єкта (людини) властивість, його частина, додаток.
Поведі́нка - родовий термін, який охоплює різні реакції живого організму чи групи організмів.
Тип даних - характеристика, яку явно чи неявно надано об'єкту (змінній, функції, полю запису, константі, масиву тощо). Тип даних визначає множину припустимих значень, формат їхнього збереження, розмір виділеної пам'яті та набір операцій, які можна робити над даними.
 

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

Інтерфейс – це набір методів класу, доступних для використання іншими класами.

Інкапсуляція – це властивість системи, що дозволяє об'єднати дані і методи, що працюють з ними, в класі і приховати деталі реалізації від користувача.

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

Поліморфізм – це властивість системи використовувати об'єкти з однаковим інтерфейсом без інформації про тип і внутрішній структурі об'єкта. 

Успадковування – це властивість системи, що дозволяє описати новий клас на основі вже існуючого з частково або повністю позичає функціональністю. 

  1   2   3   4   5   6



  • Об’єктно-орієнтоване програмування
  • ________________
  • Вступ «Об’єктно-орієнтоване програмування» належить до циклу професійної
  • Лекція 1. Введення в дисципліну. Парадигми програмування