Помогите, не понимаю как использовать return в java

279
18 апреля 2017, 07:51

Вот вроде понимаю что return что-то возвращает, завершает процессы метода(функции), но что, как он это делает вообще не понимаю. Пересмотрел кучу статей, видио по этому поводу, всё равно не понимаю!!!

"Если не сложно приведите пример чтобы понял, зарание спасибо".

Answer 1

Не могу говорить совершенно точно про java, но думаю, что там все работает также, как и в C\С++.

Если я правильно понял вопрос - отвечаю:

При вызове функции происходит смена контекста выполняемой программы - все значимые регистры и локальные переменные, а также регистр связи сохраняются в стек, а в регистры, предназначенные под передачу параметров (а если их много - для этого тоже используется стек) записываются передаваемые параметры.

Когда выполняется строка return result - в регистры, предназначенные для возврата результата выполнения функции, помещается её результат.

В случае, если результат не помещается в эти регистры - он помещается в стек, а в регистр заносится адрес возвращаемого значения в стеке.

Кроме того, после завершения функции должен быть восстановлен контекст.

А более подробно на эту тему советую почитать "Соглашение о вызовах" целевой платформы.

Answer 2

Каждый метод - это кусок последовательно выполняющегося кода.

Каждый метод в своей сигнатуре (определении) имеет указание на тип возвращаемого значения.

Каждый метод всегда заканчивается вызовом 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

READ ALSO
Для чего необходимо вводить аннотацию @Entity при определение класса , Hibernate

Для чего необходимо вводить аннотацию @Entity при определение класса , Hibernate

Не совсем ясно в чем смысл этой аннотации когда есть @Table которая явно указывает с какой таблицей идет связь

209
Пользовательские переменные mysql java

Пользовательские переменные mysql java

Подскажите, пожалуйста, как в запросе:

227
Помощь в настройках WebView

Помощь в настройках WebView

Всем привет ! Нужны параметры для WebView настроек такие как setJavaScriptEnabled только с описанием чтобы было удобно разобраться так как делаю браузер...

268