Page 118 - 6253
P. 118

}

                  Запустивши програму на виконання отримаємо наступний результат:



                  Значення 4 знаходиться у масиві nums

                  Значення 8 не знаходиться у масиві nums

                  Значення "чотири" знаходиться у масиві strs

                  Значення "вісім" не знаходиться у масиві strs

                  У  представленому  прикладі  тип  V  обмежений  згори  типом  Т.  Тобто  перший

            аргумент, що передається у метод inArray() повинен бути типу Т, або типу його

            підкласів. Узагальнені методи можуть бути не тільки статичними. Подібним чином

            можна  оголосити  нестатичний  узагальнений  метод  у  будь-якому  класі  або

            інтерфейсі.



                  Узагальнені конструктори

                  Подібно  до  узагальнених  методів  можна  створити  узагальнений  конструктор.

            Його синтаксис майже нічим не відрізняється від синтаксису узагальненого методу.



                  <T> Ім'я_Класу(список_параметрів) {
                      // тіло конструктора

                  }


                  Так  само  як  і  для  методів,  зовсім  не  обов’язково,  щоб  клас  в  якому

            оголошується  узагальнений  конструктор  був  узагальненим.  Розглянемо  приклад  у

            якому оголошується узагальнений конструктор.


                  // Створення узагальненого конструктора

                  class Generic {

                      private double val;




                      // Узагальнений конструктор неузагальненого класу

                      <T extends Number> Generic(T o) {

                          val = o.doubleValue();

                      }




                                                              117
   113   114   115   116   117   118   119   120   121   122   123