Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
// получить дальности действия разных транспортных средств
// Возвращаемое методом значение присваивается переменной.
rangel = minivan.range() ;
range2 = sportscar.range();
System.out.println("Minivan can carry " + minivan.passengers +
" with range of " + rangel + " Miles");
System.out.println("Sportscar can carry " + sportscar.passengers +
" with range of " + range2 + " miles");
}
}
Ниже приведен результат выполнения данной программы.
Minivan can carry 7 with range of 336 Miles
Sportscar can carry 2 with range of 168 miles
Обратите внимание на то, что вызов метода range () в данной программе указывается в правой части оператора присваивания, тогда как в левой его части — переменная, которая принимает значение, возвращаемое методом range (). Таким образом, после выполнения следующей строки кода значение дальности действия для объекта minivan сохраняется в переменной rangel:
rangel = minivan.range();.
Следует иметь в виду, что в данном случае метод range () возвращает значение типа int, т.е. вызывающая часть программы получает целочисленное значение. Тип возвращаемого значения — очень важная характеристика метода, поскольку возвращаемые данные должны соответствовать типу, указанному в определении метода. Иными словами, если метод должен возвращать значение типа double, то именно таким и следует объявить его тип.
Несмотря на то что приведенная выше программа компилируется и выполняется без ошибок, ее эффективность можно повысить. В частности, переменные rangel и range2 в ней не нужны. Вызов метода range () можно непосредственно указать в качестве параметра метода println (), как показано ниже.
System.out.println("Minivan can carry " + minivan.passengers +
" with range of " + minivan.range() + " Miles");
В данном случае при выполнении метода println () будет автоматически осуществляться вызов minivan. range (), а полученное в итоге значение — передаваться методу println (). Более того, к методу range () можно обратиться в любой момент, когда понадобится значение дальности действия для объекта типа Vehicle. В качестве примера ниже приведено выражение, в котором сравнивается дальность действия двух транспортных средств.
if(vl.range() > v2.range()) System.out.println("vl has greater range");
Использование параметров
При вызове метода ему можно передать одно или несколько значений. Значение, передаваемое методу, называется аргументом. А переменная, получающая аргумент, называется формальным параметром, или просто параметром. Параметры объявляются в скобках после имени метода. Синтаксис объявления параметров такой же, как и у переменных. А областью действия параметров является тело метода. За исключением особых случаев передачи аргументов методу параметры действуют так же, как и любые другие переменные.
Ниже приведен простой пример программы, демонстрирующий использование параметров. В классе ChkNum метод isEven () возвращает логическое значение true, если значение, передаваемое при вызове этого метода, является четным числом. В противном случае метод возвращает логическое значение false. Таким образом, метод isEven () возвращает значение типа boolean.
// Простой пример применения параметра в методе.
class ChkNum {
// возвратить логическое значение true,
// если х содержит четное число
// Здесь х — целочисленный параметр метода isEven().
boolean isEven(int x) {
if((x%2) == 0) return true;
else return false;
}
}
class ParmDemo {
public static void main(String args[]) {
ChkNum e = new ChkNum();
// В следующих строках кода передаются аргументы методу isEven().
if(е.isEven(10)) System.out.println("10 is even.");
if (e.isEven(9)) System.out.println("9 is even.");
if (e.isEven(8)) System.out.println("8 is even.");
}