
- •Об'єктно-орієнтовані мови. Основні принципи об'єктно-орієнтованого програмування.
- •Відмінності мови Java від інших мов програмування
- •Основні типи даних мови Java.
- •Перетворення даних в програмах на Java.
- •Пакети класів, їх створення та використання.
- •Використання рядків в мові Java. Клас String.
- •Менеджери розташування. Їх призначення та використання Розкладки
- •FlowLayout (послідовне розташування)
- •GridLayout (табличне розташування)
- •BorderLayout (полярне розташування)
- •CardLayout (блокнотне розташування)
- •GridBagLayout (коміркове розташування)
- •Пакет java.Awt. Ієрархія класів в ньому. Клас Component.
- •Контейнери. Їх призначення та загальні методи контейнерів Контейнери
- •Загальні характеристика класу Component (див 13)
- •Використання контейнера Panel та основні його методи. Панель
- •Контейнер Frame, його особливості. Frame (Фрейми)
- •Графічні засоби мови Java. Клас Canvas.
- •Реалізація роботи прапорців та пермикачів. Checkbox (Прапорець та Перемикач)
- •Клас Graphics. Малювання графічних примітивів.
- •Виведення тексту. Клас Font.
- •Повідомлення та події. Поля та методи класу Event Класи подій
- •Обробка повідомлень миші. Основні методи.
- •Виведення растрових зображень. Класи Url та Image. Завантаження растрового зображення
- •Виведення зображення
- •Клас Image
- •Способи усунення мерехтіння при виведенні інформації на екран. Усунення мерехтіння
- •Потоки. Клас Thread.Створення потоків.
- •Створення потоків
- •Виняткові ситуації. Класи Throwable, Exception, Error. 29. Методи обробки виняткових ситуацій.
- •Аплети у порівнянні з додатками
- •Проблема безпеки
- •Включення аплетів в html-документ Створення аплетів
- •Введення-виведення даних. Базові класи введення-виведення
- •Дати порівняльну характеристику протоколів стеку tcp/ip та udp.
- •Створення сокетів tcp
- •4.3 Робота з потоковими сокетами
- •Клас Socket
- •Клас ServerSocket
- •Створення сокетів udp
- •Клас DatagramSocket
- •Клас DatagramPacket
- •Приклад серверного додатку, що реалізує датаграмний сокет.
- •Приклад клієнтського додатку, що реалізує датаграмний сокет.
Об'єктно-орієнтовані мови. Основні принципи об'єктно-орієнтованого програмування.
об’єктно-орієнтованим програмуванням (ООП), було створено для управління зростаючою складністю програм. ООП організує програму навколо її даних (тобто навколо об’єктів) і набору чітко визначених інтерфейсів з цими даними. Об’єктно-орієнтовану програму можна характеризувати як доступ до коду, що управляється даними (data controlling access to data). Як ми побачимо далі, такий підхід має деякі організаційні переваги, а саме:
Можна повторно використовувати код програми і таким чином економити час на розробку.
Програми з використанням ООП добре структуровані, що дозволяє добре розуміти, які функції виконують окремі підпрограми.
Програми з використанням ООП легко тестувати і модифікувати. Можна розбити програму на компоненти і тестувати роботу кожної з них.
Всі мови ООП забезпечують механізми, які допомагають реалізувати об’єктно-орієнтовану модель. До них відносять абстракцію, інкапсуляцію, успадкування і поліморфізм. Також їх часто називають основними принципами ООП.
Абстракція даних – введення типів даних, визначених користувачем і відмінних від базових. Ця концепція полягає у можливості визначати нові типи даних, з якими можна працювати так само, як і з основними типами даних. Крім того, абстракція має місце і при застосуванні шаблонів, тобто введенні абстрактних типів даних, які в залежності від умов їх застосування приймають той або інший тип.
Інкапсуляція – це механізм, який пов’язує код з даними, що ним обробляються, та зберігає їх як від зовнішнього впливу, так і від помилкового використання. Інкапсуляцію можна уявити як захисну оболонку, яка запобігає доступу до коду та даних з іншого коду, що знаходиться зовні цієї оболонки. Основою абстракціі та інкапсуляції в Java є клас. Клас визначає структуру та поведінку (дані і код) деякого набору об’єктів. Кожен об’єкт заданого класу містить як структуру (дані), так і поведінку, що визначається класом (так, як би ці об’єкти було проштамповано шаблоном у формі класу). Тому об’єкт іноді ще називають екземпляром класу. Успадкування (наслідування) – це процес, за допомогою якого один об’єкт отримує властивості іншого об’єкта. Воно важливе, тому що підтримує концепцію ієрархічної класифікації. Переважною частиною знань можна управляти лише за допомогою ієрархічних (тобто організованих “згори донизу”) класифікацій. Без застосування класифікацій кожен об’єкт потребував би явного визначення всіх своїх характеристик. Завдяки використанню успадкування об’єкт потребує визначення лише тих якостей, які роблять його унікальним у власному класі. Поліморфізм (грецькою ”polymorphos” – множинність форм) – властивість, яка дозволяє використовувати один інтерфейс для спільного класу дій. Специфічна дія точно визначається в залежності від конкретної ситуації. Наприклад, розглянемо стек (список типу LIFO – Last-In, First-Out; останнім увійшов, першим вийшов). Програма може потребувати три типи стеків. Один стек використовується для цілих чисел, другий – для чисел з плаваючою крапкою, третій – для символів. Алгоритм, який реалізує кожен стек, один і той самий, хоча дані, що зберігаються, різні. Не об’єктно-орієнтована мова вимагала б створення трьох різних стекових підпрограм, кожна з яких мала б своє власне ім’я. Завдяки поліморфізму в мові Java можна визначити спільний для всіх типів даних набір стекових підпрограм, що використовують одне і те саме ім’я.
Взагалі суть концепції поліморфізму можна виразити фразою “один інтерфейс, багато методів”. Це означає, що можна спроектувати спільний інтерфейс для групи пов’язаних родинними зв’язками об’єктів.