When a method executes, it can do tasks. In addition to doing tasks, it can also give you back a value. This is called returning a value. For example, we could have a method called printSum() which takes 2 arguments and prints the sum of those two arguments:

public static void printSum(int a, int b) {
		System.out.println(a + b);
}

'

Notice that the printSum() method signature contains the keyword void, which tells you that the method does not return a value.

Alternatively, we can have a method called sum() which returns the result of adding the 2 numbers, which allows us more flexibility (because we might not always want to print the sum):

public static int sum(int a, int b) {
		return a + b;
}

Notice that we use the keyword return to return a value.

Let’s look at how these two methods might be called:

public static void main(String[] args) {
		printSum(5, 4);
		int myNumber = sum(5, 4) / 2;
		System.out.println(myNumber);
}

Output of the code above:

9
4

Let’s break down the code and output. First, we called printSum() and passed the arguments 5 and 4. The  printSum() method prints the result of taking the first argument plus the second argument, so it printed 9.

Now let’s look at when the sum() method was called. The arguments passed into sum() are also 5 and 4. However, the sum() method returns the result of adding the two arguments. 5 + 4 = 9, so the method returns the value 9. The return value then takes the place of the method call (the highlighted code), and now we can use this value however we want.