Page 100 - 6253
P. 100
РОЗДІЛ 5
УЗАГАЛЬНЕННЯ ТА ПАКЕТИ
5.1 Узагальнення або налаштовувані типи
Більшість алгоритмів є логічно ідентичними, незалежно від того, з якими
типами даних вони працюють. Наприклад, алгоритм, за яким працює стек, є
ідентичним для роботи із об’єктами класів Integer, String, Double або Object.
Завдяки узагальненням можна реалізувати один алгоритм, який буде працювати з
будь-яким типом даних.
У мові Java, узагальнення (generic) – це параметризовані типи даних. Тип
даних з якими оперує код, вказується у вигляді відповідного параметру під час
створення класу, інтерфейсу або методу. Класи, інтерфейси або методи, що мають
справу з параметризованими типами даних називаються узагальненнями,
узагальненими класами або узагальненими методами.
До появи у мові Java узагальнень, оперування об’єктами різних типів
відбувалося через клас Object, оскільки він є суперкласом для усіх інших класів.
Тобто, в старому коді узагальнені класи, інтерфейси і методи використали
посилання на тип Object, так як, через нього можна звертатися до об'єктів будь-
якого типу. Проте, проблема полягала в тому, що такий підхід не міг забезпечити
безпеку типів.
Визначення узагальненого класу
З появою узагальнень відпала необхідність виконувати явне приведення типів
для трансляції об'єктів класу Object в реальні типи даних, оскільки тепер усі
приведення виконуються автоматично. Для створення узагальненого класу
використовується наступний синтаксис:
class Ім’я_Класу<T> {
// тіло класу
}
99