1. returnТвърдението
Мислите, че вече сте научor всичко за методите на Java? Каквото и да мислите, че знаете, все още не знаете и половината от него.
Да започнем с нещо просто. Например Java има израз за връщане , който ви позволява незабавно да прекратите метода, който го извиква. Ето изявлението:
return;
Просто е: самотната дума, returnпоследвана от точка и запетая. Веднага щом програмата изпълни този оператор, текущият метод излиза незабавно и извикването продължава.
Ако returnсе извика в mainметода, тогава mainметодът незабавно ще приключи, а с него и цялата програма.
Пример:
|
Методът fill запълва част от предадения масив с value. Частта от масива, която трябва да се попълни, се определя от индексите from и to. Ако from е по-малко от 0or ако 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интервал и низът . Низът се връща като резултат от метода. strresultresult |
Пример 3: Методът изчислява максимума от две числа с помощта на троичния оператор:
|
Методът връща максимума от две числа. връщане (ако a > b, тогава a, в противен случай b) |
GO TO FULL VERSION