Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

Глава 6. Введение в классы 145

myboxl.height = 20; myboxl.depth = 15;

/* присвоить другие значения

переменным экземпляра mybox2*/ mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9;

// получить объем первого блока

vol = myboxl.volume ();

System.out.println("Объем равен " + vol);

// получить объем второго блока vol = mybox2.volume();

System.out.println("Объем равен " + vol); } }

He трудно заметить, что при вызове метода volume о он помещается спра­ва от оператора назначения (присваивания). Слева находится переменная, в данном случае это переменная vol, которая примет значение, возвращен­ное методом volume () . Таким образом, после выполнения оператора

vol = myboxl.volume ();

значение myboxl.volume () становится равным 3000, и это значение затем сохраняется в vol. Еще два важных замечания относительно возвращения значений:

П тип данных, возвращаемых методом, должен быть совместим с типом, указанным в заголовке определения метода. Например, если тип возвра­щаемого значения некоторого метода — boolean, вы не можете возвра­щать целое число (типа int);

П переменная, принимающая значение, возвращаемое методом (такая, как vol в нашем случае), должна также быть совместима с типом возвращае­мого значения, указанным в определении метода.

Еще одно замечание: предшествующая программа может быть записана не­много эффективнее, потому что нет фактически никакой потребности в пе­ременной vol. Обращение к volume о можно выполнить прямо в утвержде­нии с вызовом println о, например:

System.out.println("Объем равен " + myboxl.volume());

В этом случае при выполнении println о метод myboxl. volume о будет вы­зываться автоматически, и его значение будут пересылаться, к println о.

146 Часть I. Язык Java

Добавление метода с параметрами

Хотя некоторые методы не нуждаются в параметрах, но большинство из них параметрами все-таки пользуется. Параметры обобщают метод. Параметри­зованный метод может работать на множестве данных и/или использоваться в ряде похожих ситуаций. Чтобы иллюстрировать это положение, воспользу­емся очень простым примером. Имеется метод, который возвращает квадрат числа 10:

int square() {

return 10 * 10; }

Хотя этот метод действительно осуществляет возврат значения 10, возведен­ного в квадрат, его использование очень ограничено. Однако если вы изме­ните метод так, чтобы он имел параметр, как показано ниже, тогда вы мо­жете сделать метод square о более полезным.

int square (int i) {

return i * i; }

Теперь square о будет возвращать квадрат любого значения, с которым он вызывается. То есть square о стал универсальным методом, который может вычислять квадрат любого целого значения, а не только 10. Например:

int x, у;

х = square (5); // х равно 25

х = square (9); // х равно 81

У = 2;

х = square (у); // х равно 4

В первом обращении к square ( ) параметром i будет передаваться значе­ние 5. Во втором обращении i будет принимать значение 9. Третье обраще­ние передает значение у, которое в этом фрагменте равно 2. Как показыва­ют эти примеры, square о способен возвращать квадрат любых данных, ко­торые ему пересылают.

Важно различать два термина параметр и аргумент. Параметр это пере­менная, определяемая методом, которая принимает значение во время вызо­ва метода. Например, в методе square (int i) определен один параметр i типа int. Аргумент это значение, которое передается методу, когда тот вызывается. Например, методу square (ЮО) в качестве аргумента передается число 100. Внутри метода square о это значение принимает параметр i.

Соседние файлы в папке JavaLit