- •1.2. Алгоритм
- •1.3. Предмет науки програмування
- •1.4. Застосування мов програмування
- •1.5. Стандартизація мов програмування
- •1.6. Середовище розробки
- •1.7. Тестування і верифікація програм
- •Лекція 2. Алгоритми і обчислення
- •2.1. Алгоритми
- •2.2. Обчислювальні машини
- •2.3. Основи фон-нейманівської архітектури
- •Лекція 3. Парадигми програмування
- •3.1. Базові парадигми програмування
- •Процедурне програмування
- •Абстрактна семантика процедурних програм.
- •Денотаційна семантика.
- •Операційна семантика
- •Структурність і модульність
- •3. 3. Модульне програмування
- •3.4. Об’єктно-орієнтовне програмування
- •3.5. Функціональне програмування
- •3.6. Логічне програмування
- •3.6. Алгебраїчна парадигма
- •Висновок
- •Лекція 4. Огляд основних мов програмування
- •4.1. Мова Picmkalkul Конрада Цузе
- •4.1.1. Історичні передумови
- •4.1.2. Огляд мови
- •4.2. Мінімальне програмування на апаратному рівні: псевдокоди
- •4.2.1. Мова Short Code
- •4.2.2. Система Speedcoding
- •4.2.3. Система "компіляції" univac
- •4.2.4. Суміжна робота
- •4.3. Комп'ютер ibm 704 і мова fortran
- •4.3.1. Історична ретроспектива
- •4.3.2. Процес розробки
- •4.3.3. Огляд мови fortran I
- •4.3.4. Огляд мови fortran II
- •4.3.5. Мови fortran IV, fortran 77 і fortran 90
- •4.4. Функціональне програмування: мова lisp
- •4.4.1. Витоки робіт в області штучного інтелекту та обробка списків
- •4.4.2. Процес розробки мови lisp
- •4.4.3. Огляд мови
- •4.4.5. Два нащадки мови lisp
- •4.4.6. Споріднені мови
- •4.5. Перший крок до удосконалення: мова algol 60
- •4.5.1. Історична ретроспектива
- •4.5.2. Початкова стадія розробки
- •4.5.3. Огляд мови algol 58
- •4.5.4. Прийняття звіту про мову algol 58
- •4.5.5. Процес розробки мови algol 60
- •4.5.6. Огляд мови algol 60
- •4.5.7. Оцінка мови algol 60
- •Лекція 5. Трансляція і формальні граматики
- •5.1. Транслятори
- •5.2. Процес трансляції
- •5.3. Формальні граматики. Нбф-граматика
- •Лекція 6. Java - мова ооп
- •6.2. Основні властивості програм і перші приклади
- •6.3. Арифметичні і побітові оператори мови Java
Лекція 6. Java - мова ооп
В інформатиці та програмуванні зміни відбуваються постійно і з великою швидкістю. Одним з найбільш значних змін за останні двадцять років стала поява загальносвітової мережі Інтернет та мови програмування Java. Найважливішими властивостями цієї мови, званого навіть революційним, є наступні: • Java є сучасним об'єктно-орієнтованою мовою; • Java надає програмісту багатий набір класів різних об'єктів; • Java дозволяє створювати аплети, які є невеликими, надійними, динамічними і не залежними від платформи мережевими додатками, які вбудовуються у веб-сторінки мережі Інтернет.
Вибір цієї мови в якості базового для нашого курсу обумовлений перш за все наявністю у нього таких якостей, як простота і міць, безпека, об'єктна орієнтованість, надійність, інтерактивність, архітектурна незалежність, можливість інтерпретації, висока продуктивність і легкість у вивченні. Частина з них нам знадобиться з перших же кроків, інші - трохи пізніше.
6.1. Об'єктно-орієнтоване програмування Об'єктно-орієнтоване програмування настільки інтегроване в Java, що написання навіть найпростіших програм вимагає знання основних принципів ООП. Хоча в першій частині курсу ми і не збираємося акцентувати увагу на них, загальне уявлення про основи об'єктно-орієнтованого підходу необхідно мати вже зараз.
Об'єктно-орієнтоване програмування є технологією програмування, в основі якої лежить здатність людини узагальнювати, класифікувати і генерувати абстракції. Концепція ООП базується на таких поняттях як об'єкти та класи. У повсякденному житті об'єкти зустрічаються на кожному кроці: комп'ютери, телефони, машини, будинки, чашки і багато іншого. У програмуванні це можуть бути символи, числа, рядки, а також об'єкти, придумані і реалізовані автором програми.
Важливо те, що об'єкти - це не тільки деякі значення (дані). У них також є методи, що зв'язують дані і керують ними. Об'єкти являють собою об'єднання структур даних, що містять інформацію, та методів і функцій для управління цими даними.
Довільну об'єктно-орієнтовану мову програмування характеризують три основні властивості:
• інкапсуляція, тобто суміщення даних з функціями (методами), призначеними для маніпулювання цими даними, в одному об'єкті, що супроводжується приховуванням його внутрішньої структури від зовнішнього світу; в мові Java це досягається шляхом введення механізму класів; • спадкоємство, тобто створення нових, похідних класів, на базі вже наявних, які успадковують дані і методи від раніше визначених базових класів, при цьому можливе перевизначення або додавання нових даних і методів, в результаті створюється так звана ієрархія класів; • поліморфізм, тобто наявність у різних класів методів з одним і тим же ім'ям, в результаті чого кожен з класів має можливість по-своєму виконувати пов'язані із цим методом дії.
Більш повну інформацію, пов'язану з об'єктно-орієнтованим програмуванням, можна почерпнути з уже згадуваної книги [#!morgan!#] І чудовою, хоча і складної для новачка, книги [#!badd!#].
