Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.
"Отново ти, Амиго. Е, здравей."
— Изглежда не си много щастлив да ме видиш, Диего?
„Останах с впечатлението, че мислите, че вече сте науч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. И сега ще ви насоча към разбиране защо това е така.
Методи с резултат,void
„Вероятно си спомняте, че има твърдения и има изрази . Каква е разликата между тях?“
„Ако не греша, изразът, за разлика от твърдението, има meaning, което може да се използва някъде.“
„Правилно. И в Java методите също могат да имат стойност . И това е много добра новина: методите не само могат да направят нещо въз основа на входните параметри, но също така, например, да оценят нещо и да върнат резултата от изчислението .
„Между другото, вече сте срещали такива методи:
|
Методът abs() връща двойно |
|
Методът nextInt() връща anint |
|
Методът toUpperCase() връща aString |
|
Методът copyOf() връща anint[] |
"Всеки метод може да върне само една стойност от един предварително определен тип . Типът на връщането се определя, когато методът е деклариран:
public static Type name(parameters)
{
method body
}
Къде name
е името на метода, parameters
е списъкът с параметри на метода и type
е типът на резултата, който методът връща.
За методи, които не връщат нищо, има специален тип контейнер: void
.
„С други думи, ако напиша своя метод и не искам да връщам нищо, тогава декларирам типа на метода да бъде void
и това е?“
„Да. И трябва да кажа също, че Java има доста такива методи.
Връщане на резултат
„Разбрах How да декларирам метод, който връща резултата от изчисление/работа. Как да върна резултата от самия метод?“
„Това е валиден въпрос. return
Изявлението ни помага тук още веднъж. Предаването на резултат от метод изглежда така:
return value;
" return
Инструкцията ще прекрати метода незабавно. И value
е това, което методът трябва да върне на извикващия метод, когато излезе. Типът value
трябва да съответства на Type
посочения в декларацията на метода. Ето няколко примера, за да подкрепите това, което сте научor:
Пример 1. Методът изчислява минимума от две числа:
|
Методът връща минимум две числа. Ако a < b върнете a В противен случай върнете b |
Пример 2. Методът дублира изпратения му низ n
пъти:
|
Методът приема два параметъра - низ и броя пъти, които низът трябва да се повтори. Създава се празен низ за бъдещия резултат. В цикъл с times итерации интервал и низът str се добавят към низа result . Низът result се връща като резултат от метода. |
Пример 3: Методът изчислява максимума от две числа с помощта на троичния оператор:
|
Методът връща максимума от две числа. връщане (ако a > b , тогава a , в противен случай b ) |
"Отлично. Методите са моята нова суперсила!"
„Само ако се упражнявате достатъчно в практически задачи.
GO TO FULL VERSION