Page 100 - 6253
P. 100

РОЗДІЛ 5

                                               УЗАГАЛЬНЕННЯ ТА ПАКЕТИ


                  5.1 Узагальнення або налаштовувані типи



                  Більшість  алгоритмів  є  логічно  ідентичними,  незалежно  від  того,  з  якими

            типами  даних  вони  працюють.  Наприклад,  алгоритм,  за  яким  працює  стек,  є

            ідентичним для роботи із об’єктами класів Integer, String, Double або Object.

            Завдяки  узагальненням  можна  реалізувати  один  алгоритм,  який  буде  працювати  з

            будь-яким типом даних.

                  У  мові  Java,  узагальнення  (generic)  –  це  параметризовані  типи  даних.  Тип

            даних  з  якими  оперує  код,  вказується  у  вигляді  відповідного  параметру  під  час

            створення класу, інтерфейсу або методу. Класи, інтерфейси або методи, що мають

            справу  з  параметризованими  типами  даних  називаються  узагальненнями,

            узагальненими класами або узагальненими методами.

                  До  появи  у  мові  Java  узагальнень,  оперування  об’єктами  різних  типів

            відбувалося через клас Object, оскільки він є суперкласом для усіх інших класів.

            Тобто,  в  старому  коді  узагальнені  класи,  інтерфейси  і  методи  використали

            посилання на тип Object, так як, через нього можна звертатися до об'єктів будь-

            якого типу. Проте, проблема полягала в тому, що такий підхід не міг забезпечити

            безпеку типів.



                  Визначення узагальненого класу

                  З появою узагальнень відпала необхідність виконувати явне приведення типів

            для  трансляції  об'єктів  класу  Object  в  реальні  типи  даних,  оскільки  тепер  усі

            приведення  виконуються  автоматично.  Для  створення  узагальненого  класу

            використовується наступний синтаксис:


                  class Ім’я_Класу<T> {


                      // тіло класу


                  }








                                                              99
   95   96   97   98   99   100   101   102   103   104   105