Вот вроде понимаю что return что-то возвращает, завершает процессы метода(функции), но что, как он это делает вообще не понимаю. Пересмотрел кучу статей, видио по этому поводу, всё равно не понимаю!!!
"Если не сложно приведите пример чтобы понял, зарание спасибо".
Не могу говорить совершенно точно про java, но думаю, что там все работает также, как и в C\С++.
Если я правильно понял вопрос - отвечаю:
При вызове функции происходит смена контекста выполняемой программы - все значимые регистры и локальные переменные, а также регистр связи сохраняются в стек, а в регистры, предназначенные под передачу параметров (а если их много - для этого тоже используется стек) записываются передаваемые параметры.
Когда выполняется строка return result - в регистры, предназначенные для возврата результата выполнения функции, помещается её результат.
В случае, если результат не помещается в эти регистры - он помещается в стек, а в регистр заносится адрес возвращаемого значения в стеке.
Кроме того, после завершения функции должен быть восстановлен контекст.
А более подробно на эту тему советую почитать "Соглашение о вызовах" целевой платформы.
Каждый метод - это кусок последовательно выполняющегося кода.
Каждый метод в своей сигнатуре (определении) имеет указание на тип возвращаемого значения.
Каждый метод всегда заканчивается вызовом return
. В случае если метод возвращаемым значением имеет void
(не путать с Void
) то ключевое слово return
можно (и нужно) опустить.
Пример:
public void method(){
//в данном случае return можно опустить
return;
}
Также return в этих методах можно использовать для логических целей. Например не выполнять код методе, если какие-то условия не выполнились
public void method(){
//не выполнять код метода далее, если системное время меньше 0
if(System.currentTimeMillis() < 0){
return;
}
//системное время больше нуля, продолжаем выполнение
//опять таки return можно здесь не вызывать, он и так по умолчанию подразумевается в конце кода метода.
}
Если возвращаемое значение метода не void
то метод обязан вызвать return
и вернуть значение указанного типа. Его можно использовать для назначения к-л переменно или иначе использовать
Пример:
int i = getInt();
public int getInt() {
return 42;
//т.к. возвращаемое значение int, то нельзя вернуть не int
//return "42" - не скомпилируется, т.к. возврашать метод должен int, не String
}
В последнем случае результат работы метода будет присвоен переменной i
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не совсем ясно в чем смысл этой аннотации когда есть @Table которая явно указывает с какой таблицей идет связь
Всем привет ! Нужны параметры для WebView настроек такие как setJavaScriptEnabled только с описанием чтобы было удобно разобраться так как делаю браузер...