Java Урок 33: КЛАСС, перегрузка методов с переменным количеством аргументов
Опубликовано: 01.09.2018
Метод, который принимает список аргументов переменной длины, можно перегружать.
Урок 34 - Методы с переменным количеством аргументов
Скачать исходники для статьи можно ниже // Параметры vararg и перегрузка, class VarArgs3 { static void vaTest(int ... v) { System.out.print("vaTest(int ...): " + "Количество аргументов: " + v.length + " Содержимое: "); for(int x : v) System.out.print(x + " "); System.out.println() ; } static void vaTest(boolean ... v) { System.out.print("vaTest(boolean ...) " + "Количество аргументов: " + v.length + " Содержимое: "); for(boolean x : v) System.out.print(x + " "); System.out.println(); } static void vaTest(String msg, int ... v) { System.out.print("vaTest(String, int ...): " + msg + v.length + " Содержимое: ") ; for(int x : v) System.out.print(x + " "); System.out.println(); } public static void main(String args[]){ vaTest(1, 2 , 3); vaTest("Проверка: ", 10, 20); vaTest(true, false, false); } }
Эта программа создает следующий вывод.
vaTest(int ...): Количество аргументов: 3 Содержимое: 12 3 vaTest(String, int ...): Проверка: 2 Содержимое: 10 20 vaTest(boolean ...) Количество аргументов: 3 Содержимое: true false falseПриведенная программа иллюстрирует два возможных способа перегрузки метода с переменным количеством аргументов.
Первый способ — типы его параметра с переменным количеством аргументов могут быть различными. Именно это имеет место в вариантах vaRest (int. . . ) и vaTest (boolean. . . ).
Помните, что конструкция . . . вынуждает компилятор обрабатывать параметр как массив указанного типа. Поэтому, подобно тому, как можно выполнять перегрузку методов, используя различные типы параметров массива, можно выполнять перегрузку методов с переменным количеством аргументов, используя различные типы списков аргументов переменной длины. В этом случае система Java использует различие в типах для определения нужного варианта перегруженного метода.Второй способ перегрузки метода с переменным количеством аргументов — добавление одного или нескольких обычных параметров. Именно это было сделано для метода vaTest (String, int. . .). В данном случае для определения нужного метода система Java использует и количество аргументов, и их тип.
Метод, поддерживающий переменное количество аргументов, может быть перегружен также методом, который не поддерживает эту возможность.
Например, в приведенной ранее программе метод vaTest() может быть перегружен методом vaTest(int х).
Эта специализированная версия вызывается только при наличии аргумента int. В случае передачи методу двух и более аргументов типа int программа будет использовать версию метода vaTest (int. . . v) с переменным количеством аргументов.Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |