Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.
"Отново ти, Амиго. Е, здравей."
— Изглежда не си много щастлив да ме видиш, Диего?
„Останах с впечатлението, че мислите, че вече сте науч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. И сега ще ви насоча към разбиране защо това е така.
Методи с резултат,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