Return в java как работает

Методы могут возвращать некоторое значение. Для этого применяется оператор return .
После оператора return указывается возвращаемое значение, которое является результатом метода. Это может быть литеральное значение, значение переменной или какого-то сложного выражения.
В методе в качестве типа возвращаемого значения вместо void используется любой другой тип. В данном случае метод sum возвращает значение типа int , поэтому этот тип указывается перед названием метода. Причем если в качестве возвращаемого типа для метода определен любой другой, отличный от void , то метод обязательно должен использовать оператор return для возвращения значения.
При этом возвращаемое значение всегда должно иметь тот же тип, что значится в определении функции. И если функция возвращает значение типа int , то после оператора return стоит целочисленное значение, которое является объектом типа int . Как в данном случае это сумма значений параметров метода.
Метод может использовать несколько вызовов оператора return для возваращения разных значений в зависимости от некоторых условий:
Здесь метод daytime возвращает значение типа String, то есть строку, и в зависимости от значения параметра hour возвращаемая строка будет различаться.
Выход из метода
Оператор return применяется для возвращаения значения из метода, но и для выхода из метода. В подобном качестве оператор return применяется в методах, которые ничего не возвращают, то есть имеют тип void :
Если переданное в метод datetime значение больше 24 или меньше 0, то просто выходим из метода. Возвращаемое значение после return указывать в этом случае не нужно.
Returning a Value from a Method
You declare a method's return type in its method declaration. Within the body of the method, you use the return statement to return the value.
Any method declared void doesn't return a value. It does not need to contain a return statement, but it may do so. In such a case, a return statement can be used to branch out of a control flow block and exit the method and is simply used like this:
If you try to return a value from a method that is declared void , you will get a compiler error.
Any method that is not declared void must contain a return statement with a corresponding return value, like this:
The data type of the return value must match the method's declared return type; you can't return an integer value from a method declared to return a boolean.
The getArea() method in the Rectangle Rectangle class that was discussed in the sections on objects returns an integer:
This method returns the integer that the expression width*height evaluates to.
The getArea method returns a primitive type. A method can also return a reference type. For example, in a program to manipulate Bicycle objects, we might have a method like this:
Returning a Class or Interface
If this section confuses you, skip it and return to it after you have finished the lesson on interfaces and inheritance.
When a method uses a class name as its return type, such as whosFastest does, the class of the type of the returned object must be either a subclass of, or the exact class of, the return type. Suppose that you have a class hierarchy in which ImaginaryNumber is a subclass of java.lang.Number , which is in turn a subclass of Object , as illustrated in the following figure .
The class hierarchy for ImaginaryNumber
Now suppose that you have a method declared to return a Number :
The returnANumber method can return an ImaginaryNumber but not an Object . ImaginaryNumber is a Number because it's a subclass of Number . However, an Object is not necessarily a Number — it could be a String or another type.
You can override a method and define it to return a subclass of the original method, like this:
This technique, called covariant return type, means that the return type is allowed to vary in the same direction as the subclass.
Как использовать return в java?
Вот вроде понимаю что return что-то возвращает, завершает процессы метода (функции), но что, как он это делает вообще, не понимаю. Пересмотрел кучу статей, видио по этому поводу, всё равно не понимаю.
Если не сложно приведите пример чтобы понял, заранее спасибо.
![]()
Каждый метод — это кусок последовательно выполняющегося кода.
Каждый метод в своей сигнатуре (определении) имеет указание на тип возвращаемого значения.
Каждый метод всегда заканчивается вызовом return . В случае если метод возвращаемым значением имеет void (не путать с Void ) то ключевое слово return можно (и нужно) опустить. Пример:
Также return в этих методах можно использовать для логических целей. Например не выполнять код методе, если какие-то условия не выполнились
Если возвращаемое значение метода не void то метод обязан вызвать return и вернуть значение указанного типа. Его можно использовать для назначения к-л переменно или иначе использовать Пример:
В последнем случае результат работы метода будет присвоен переменной i
![]()
Не могу говорить совершенно точно про java, но думаю, что там все работает также, как и в C\С++.
Если я правильно понял вопрос — отвечаю:
При вызове функции происходит смена контекста выполняемой программы — все значимые регистры и локальные переменные, а также регистр связи сохраняются в стек, а в регистры, предназначенные под передачу параметров (а если их много — для этого тоже используется стек) записываются передаваемые параметры.
Когда выполняется строка return result — в регистры, предназначенные для возврата результата выполнения функции, помещается её результат.
В случае, если результат не помещается в эти регистры — он помещается в стек, а в регистр заносится адрес возвращаемого значения в стеке.
Кроме того, после завершения функции должен быть восстановлен контекст.
А более подробно на эту тему советую почитать «Соглашение о вызовах» целевой платформы.
How to Use the return Keyword in Java
The return keyword is probably the most underused one in Java. This feature is available in almost every programming language and allows the programmer to specify a return value of the current method.

In this post, we’ll cover the various use cases of the return keyword, along with examples, and help you take advantage of this feature. Let’s dive in.