Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Раньше для поддержки переменного числа аргументов применялись два способа, причем оба были далеки от совершенства. Первый способ состоял в следующем: если максимальное число аргументов невелико и известно заранее, то можно создать разные варианты одного метода. Очевидно, что такой подход применим лишь в отдельных случаях. Если же значений оказывалось слишком много или их максимальное количество не было известно заранее, то применялся второй способ: параметры помещались в массив, который и передавался методу. Обоим этим способам присущи определенные недостатки, и со временем стало ясно, что требуется какой-то другой, более совершенный подход к решению данной задачи.
В версии JDK 5 появились языковые средства Java, упрощающие создание методов, которым требуется переменное число аргументов. Эти средства называются аргументами переменной длины, а метод, принимающий переменное число аргументов,— методом переменной арности, или же методом с аргументами переменной длины. Список параметров, соответствующих аргументам переменной длины, имеет не фиксированную, а переменную длину. Поэтому метод с аргументами переменной длины может принимать произвольно изменяющееся число аргументов.
Общие положения об аргументах переменной длины
Для указания на то, что метод может принимать переменное число аргументов, в его объявление включается многоточие (...)• Ниже приведен пример метода vaTest (), принимающего переменное число аргументов.
// Метод vaTest() с аргументами переменной длины.
// Объявление списка аргументов переменной длины.
static void vaTest(int ... v) {
System.out.println("Number of args: " + v.length);
System.out.println("Contents: ");
for(int i=0; i < v.length; i++)
System.out.println(" arg " + i + ": " + v[i]);
System.out.println();
}
Обратите внимание на следующий синтаксис объявления аргумента v:
int ... v
Этот синтаксис сообщает компилятору, что метод vaTest () может вызываться с указанием произвольного числа аргументов, в том числе и совсем без них. Более того, аргумент v неявно объявляется как массив типа int [ ]. А в теле метода vaTest () доступ к аргументу v осуществляется с помощью обычного синтаксиса обращения к массивам.
Ниже приведен весь исходный код примера программы, демонстрирующего метод vaTest () в действии.
// Демонстрация метода с аргументами переменной длины,
class VarArgs {
// Метод vaTest() с аргументами переменной длины,
static void vaTest(int ... v) {
System.out.println("Number of args: " + v.length);
System.out.println("Contents: ") ;
for(int i=0; i < v.length; i++)
System.out.println(" arg " + i + ": " + v[i]);
System.out.println();
}
public static void main(String args[])
{
// Метод vaTest() может вызываться с переменным числом аргументов.
vaTest(10); // 1 аргумент
vaTest(l, 2, 3); // 3 аргумента
vaTest(); // без аргументов
}
}
Выполнение этой программы дает следующий результат:
Number of args: 1
Contents:
arg 0: 10
Number of args: 3
Contents:
arg 0: 1
arg 1: 2
arg 2: 3
Number of args: 0
Contents: