Java_Методы которые могут возвращать значения



Сегодня рассмотрим метод, который возвращает значение.
В прошлой статье речь шла о методе, который не возвращал в результате соей работы никакого значения. Такой или такие методы объявляются с ключевым словом void .
Но допустим нам нужен метод, который в результате своей работы должен нам вернуть какое-то значение. Для этого вместо ключевого слова void , мы будем указывать тип этого значения. Это может быть либо один из простых типов или объект.
Теперь давайте рассмотрим пример:
В этом примере метод distance () не будет печатать вычисленное им значение, а передаст его его в вызвавшую метод программу, которая может распорядится этим значением как угодно.

images (1).jpg

class AvtoTrans {
int mesta; //количество мест в салоне
int kolesa; //количество колес
int maxspeed; //максимальная скорость
int rashod; //средний расход топлива
/*Здесь мы объявляем метод, который будет у нас вычислять пройденный путь.
Наш метод принимает один параметр interval, который задает время и теперь возвращает значение.*/
double distance (double interval) {
double value = maxspeed * interval;
return value;
}
}
class AvtoTransMethod {
public static void main (String ... args){
AvtoTrans car = new AvtoTrans (); //Создаем экземпляр класса AvtoTrans
car.mesta =2;
car.kolesa = 4;
car.maxspeed = 130;
car.rashod= 30;
AvtoTrans bus = new AvtoTrans (); //Создаем еще один экземпляр класса AvtoTrans
bus .mesta =45;
bus .kolesa = 4;
bus .maxspeed = 250;
bus .rashod= 30;
//Рассчитаем пройденный путь за 0,5 часа
double time = 0.5;
double distanceCar = car.distance (time);
double distanceBus = bus.distance (time);
System.out.println ("авто с"+ car.mesta + "местами" );
System.out.println ("пройдет за пол часа" + distanceCar + " км");
System.out.println ("автобус с"+ bus.mesta + "местами" );
System.out.println ("пройдет за пол часа" + distanceBus + " км");
}
}

Теперь немного разберем наш пример.
Так как метод distance () возвращает значение double, в команде return нужно указать переменную или выражение этого типа.

double value = maxspeed * interval;
return value;

Если же возвращающее значение будет использоваться только в одном выражении, но не дальше в программе, то совсем не обязательно его записывать в переменную.
Вызов метода может быть элементом выражения или аргументом другого метода. Можно не объявлять дополнительную переменную distanceCar, а записать команду вывода так:

System.out.println ("продет за пол часа" + car.distance (time));


Метод distance () объекта car, можно вызвать сколько угодно раз и из любого места программы входящую в область действия переменной car, при условии, что объект, на который указывает переменная car, существует в этом месте.

Method2_java.gif


Comments 0