1. return
Твърдението
Мислите, че вече сте научor всичко за методите на Java? Каквото и да мислите, че знаете, все още не знаете и половината от него.
Да започнем с нещо просто. Например Java има израз за връщане , който ви позволява незабавно да прекратите метода, който го извиква. Ето изявлението:
return;
Просто е: самотната дума, return
последвана от точка и запетая. Веднага щом програмата изпълни този оператор, текущият метод излиза незабавно и извикването продължава.
Ако return
се извика в main
метода, тогава main
методът незабавно ще приключи, а с него и цялата програма.
Пример:
|
Методът fill запълва част от предадения масив с value . Частта от масива, която трябва да се попълни, се определя от индексите from и to . Ако from е по-малко от 0 or ако to е по-голямо от дължината на масива, тогава методът прекратява незабавно. |
Горната програма има fill
метод, който запълва масива, предаден й с value
. Той не запълва целия масив, а само частта, определена от индексите from
и to
.
В началото на fill
метода предадените стойности се проверяват, за да се гарантира, че са валидни. Ако from
е по-малко от 0 or ако to
е по-голямо от дължината на масива, тогава fill
методът се прекратява незабавно (изпълнява return
оператор).
Това return
твърдение е полезно: практически всеки метод в Java има такъв и ето защо.
2. Методи с резултат,void
Спомнете си, че веднъж разбрахме, че има твърдения и има изрази . Изразът, за разлика от твърдението, има стойност, която може да се използва някъде.
И в Java методите могат да имат стойност . И това е много добра новина: методите не само могат да направят нещо въз основа на входните параметри, но също така, например, да оценят нещо и да върнат резултата от изчислението .
Между другото, вече сте срещали такива методи:
|
Методът abs() връща двойно |
|
Методът nextInt() връща anint |
|
Методът toUpperCase() връща aString |
|
Методът copyOf() връща anint[] |
Всеки метод може да върне само една стойност от един предварително определен тип. Типът на връщането се определя, когато методът е деклариран:
public static Type name(parameters)
{
method body
}
Къде name
е името на метода, parameters
е списъкът с параметри на метода и type
е типът на резултата, който методът връща.
За методи, които не връщат нищо, има специален тип контейнер: void
.
Пишете ли свой собствен метод и не искате да връщате нищо към извикващия метод? Просто декларирайте типа на метода като void
и проблемът е решен. В Java също има много методи като този.
3. Връщане на резултат
Току-що разбрахме How да декларираме метод, който връща резултата от изчисление, но How да доведем този резултат в самия метод?
Изявлението return
ни помага тук още веднъж. Предаването на резултат от метод изглежда така:
return value;
Къде return
е оператор, който незабавно прекратява метода. И value
е стойността, която методът връща на извикващия метод, когато излезе. Типът value
трябва да съответства на type
посочения в декларацията на метода.
Пример 1. Методът изчислява минимума от две числа:
|
Методът връща минимум две числа. Ако a < b върнете a В противен случай върнете b |
Пример 2. Методът дублира изпратения му низ n
пъти:
|
Методът приема два параметъра - низ и броя пъти, които низът трябва да се повтори. Създава се празен низ за бъдещия резултат. В цикъл с итерации към низа се добавят times интервал и низът . Низът се връща като резултат от метода. str result result |
Пример 3: Методът изчислява максимума от две числа с помощта на троичния оператор:
|
Методът връща максимума от две числа. връщане (ако a > b , тогава a , в противен случай b ) |