![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Інтерфейси
Інтерфейси Java створені для підтримки динамічного вибору (resolution) методів під час виконання програми. Інтерфейси схожі на класи, але на відміну від останніх у інтерфейсів немає змінних представників, а в оголошеннях методів відсутня реалізація. Клас може мати будь-яку кількість інтерфейсів. Все, що потрібно зробити – це реалізувати в класі повний набір методів всіх інтерфейсів. Сигнатури таких методів класу повинні точно збігатися з сигнатурами методів інтерфейсу, які реалізовуються в цьому класі. Інтерфейси мають свою власну ієрархію, яка є непересічною з ієрархією успадкування класів. Це надає можливість реалізувати один і той же інтерфейс в різних класах, ніяк не зв’язаних з ієрархією класового успадкування. У цьому і виявляється головна сила інтерфейсів. Інтерфейси є певним аналогом механізму множинного успадкування в C++, але використовувати їх набагато легше. Оператор interface Визначення інтерфейсу схоже з визначенням класу, але відмінність полягає в тому, що в інтерфейсі відсутні оголошення даних і конструкторів. Загальна форма інтерфейсу наведена нижче: interface ім’я { тип_результату ім’я_методу1(список параметрів); тип ім’я_final1_змінної = значення; } В оголошуваних в операторі interface методів відсутні оператори тіла. Оголошення методів завершується символом «;». У інтерфейсі можна оголошувати і змінні, при цьому вони неявно оголошуються final-змінними (це означає, що клас реалізації не може змінювати їх значення). Крім того, при оголошенні змінних в інтерфейсі їх обов’язково потрібно ініціалізувати константними значеннями.
Оператор implements Оператор implements – це доповнення до визначення класу, яка реалізує деякий інтерфейс(и). class ім’я_класу [extends суперклас][implements інтерфейс0 [, інтерфейс1…]]{тіло класу} Якщо в класі реалізується декілька інтерфейсів, то їх імена розділяються комами. Нижче наведені приклади використання даного оператора: [слайд на стор.18-19, Lect_14.pdf] Багатопотоковість в Java Вбудована багато потоковість – істотна риса платформи Java. Вона підтримується як на мовному (синтаксичному) рівні, так і на рівні Java VM і бібліотек класів. У багатьох випадках потоки Java дуже схожі на потоки POSIX (pthreads). Стандартна бібліотека містить у собі клас Thread з методами, що дозволяють ініціалізувати новий потік, завершити його виконання й перевірити поточний стан потоку. Інтеграція примітивів синхронізації безпосередньо в мову спрощує роботи з ними.
|