Java public method return

Java Methods

A method is a block of code that performs a specific task.

Suppose you need to create a program to create a circle and color it. You can create two methods to solve this problem:

Dividing a complex problem into smaller chunks makes your program easy to understand and reusable.

In Java, there are two types of methods:

  • User-defined Methods: We can create our own method based on our requirements.
  • Standard Library Methods: These are built-in methods in Java that are available to use.

Let’s first learn about user-defined methods.

Declaring a Java Method

The syntax to declare a method is:

    returnType — It specifies what type of value a method returns For example if a method has an int return type then it returns an integer value.

In the above example, the name of the method is adddNumbers() . And, the return type is int . We will learn more about return types later in this tutorial.

This is the simple syntax of declaring a method. However, the complete syntax of declaring a method is

modifier static returnType nameOfMethod (parameter1, parameter2, . ) < // method body >
  • modifier — It defines access types whether the method is public, private, and so on. To learn more, visit Java Access Specifier.
  • static — If we use the static keyword, it can be accessed without creating objects.

  • parameter1/parameter2 — These are values passed to a method. We can pass any number of arguments to a method.

Calling a Method in Java

In the above example, we have declared a method named addNumbers() . Now, to use the method, we need to call it.

Here’s is how we can call the addNumbers() method.

// calls the method addNumbers();

Call a method in Java using the name the method followed by a parenthesis

Example 1: Java Methods

class Main < // create a method public int addNumbers(int a, int b) < int sum = a + b; // return value return sum; >public static void main(String[] args) < int num1 = 25; int num2 = 15; // create an object of Main Main obj = new Main(); // calling method int result = obj.addNumbers(num1, num2); System.out.println("Sum is: " + result); >>

In the above example, we have created a method named addNumbers() . The method takes two parameters a and b . Notice the line,

int result = obj.addNumbers(num1, num2);

Here, we have called the method by passing two arguments num1 and num2 . Since the method is returning some value, we have stored the value in the result variable.

Note: The method is not static. Hence, we are calling the method using the object of the class.

Java Method Return Type

A Java method may or may not return a value to the function call. We use the return statement to return any value. For example,

Here, we are returning the variable sum . Since the return type of the function is int . The sum variable should be of int type. Otherwise, it will generate an error.

Example 2: Method Return Type

class Main < // create a method public static int square(int num) < // return statement return num * num; >public static void main(String[] args) < int result; // call the method // store returned value to result result = square(10); System.out.println("Squared value of 10 is: " + result); >>
Squared value of 10 is: 100

In the above program, we have created a method named square() . The method takes a number as its parameter and returns the square of the number.

Here, we have mentioned the return type of the method as int . Hence, the method should always return an integer value.

Java method returns a value to the method call

Note: If the method does not return any value, we use the void keyword as the return type of the method. For example,

Method Parameters in Java

A method parameter is a value accepted by the method. As mentioned earlier, a method can also have any number of parameters. For example,

// method with two parameters int addNumbers(int a, int b) < // code >// method with no parameter int addNumbers()< // code >

If a method is created with parameters, we need to pass the corresponding values while calling the method. For example,

// calling the method with two parameters addNumbers(25, 15); // calling the method with no parameters addNumbers()

Example 3: Method Parameters

class Main < // method with no parameter public void display1() < System.out.println("Method without parameter"); >// method with single parameter public void display2(int a) < System.out.println("Method with a single parameter: " + a); >public static void main(String[] args) < // create an object of Main Main obj = new Main(); // calling method with no parameter obj.display1(); // calling method with the single parameter obj.display2(24); >>
Method without parameter Method with a single parameter: 24

Here, the parameter of the method is int . Hence, if we pass any other data type instead of int , the compiler will throw an error. It is because Java is a strongly typed language.

Note: The argument 24 passed to the display2() method during the method call is called the actual argument.

The parameter num accepted by the method definition is known as a formal argument. We need to specify the type of formal arguments. And, the type of actual arguments and formal arguments should always match.

Standard Library Methods

The standard library methods are built-in methods in Java that are readily available for use. These standard libraries come along with the Java Class Library (JCL) in a Java archive (*.jar) file with JVM and JRE.

  • print() is a method of java.io.PrintSteam . The print(«. «) method prints the string inside quotation marks.
  • sqrt() is a method of Math class. It returns the square root of a number.

Example 4: Java Standard Library Method

To learn more about standard library methods, visit Java Library Methods.

What are the advantages of using methods?

1. The main advantage is code reusability. We can write a method once, and use it multiple times. We do not have to rewrite the entire code each time. Think of it as, «write once, reuse multiple times».

Example 5: Java Method for Code Reusability

public class Main < // method defined private static int getSquare(int x)< return x * x; >public static void main(String[] args) < for (int i = 1; i > >
Square of 1 is: 1 Square of 2 is: 4 Square of 3 is: 9 Square of 4 is: 16 Square of 5 is: 25

In the above program, we have created the method named getSquare() to calculate the square of a number. Here, the method is used to calculate the square of numbers less than 6.

Hence, the same method is used again and again.

2. Methods make code more readable and easier to debug. Here, the getSquare() method keeps the code to compute the square in a block. Hence, makes it more readable.

Table of Contents

Источник

Оператор return в Java

Java-университет

Оператор return в Java - 1

Как мы знаем, язык Java является объектно-ориентированным языком программирования. То есть базовая концепция, т.к. сказать основа основ, заключается в том, что всё есть объект. Объекты описываются при помощи классов. В свою очередь у классов есть состояние и поведение. Например, банковский счёт может иметь состояние в виде количестве денег на счету и иметь поведения увеличение и уменьшение баланса. Поведение в Java реализуется при помощи методов. То, каким образом описывать методы, приводится в самом начале пути изучения Java. Например, в официальном tutorial от Oracle: «Defining Methods». Тут можно выделить два важных аспекта:

  • Каждый метод имеет сигнатуру. Сигнатура состоит из имени метода и его входных параметров;
  • Для методов должно быть указан тип возвращаемого значения (return type);
  • Тип возвращаемого значения не входит в сигнатуру метода.

Опять же, это следствие того, что Java язык строго типизированный и компилятор хочет заранее понимать, какие типы и где используются на столько, на сколько это возможно. Опять же, чтобы уберечь нас от ошибок. В общем, всё во благо. Ну и нам это лишний раз прививает культуру обращения с данными, как мне кажется. Итак, для методов указывается тип значения. А чтобы вернуть это самое значение из методов используется ключевое слово return .

Ключевое слово оператор return в Java

Ключевое слово оператор return относится к выражениям «управления ходом выполнения», о чём указано в oracle tutorial «Control Flow Statements». О том, как нужно возвращать значения можно так же прочитать в официальном tutorial: «Returning a Value from a Method». Компилятор тщательно следит, на сколько у него хватает сил, за тем, чтобы возвращаемое из метода значение соответствовало указанному у метода типу возвращаемого значения. Воспользуемся для примера Online IDE от tutorialspoint. Посмотрим на изначальный пример:

Как мы видим, здесь выполняется main метод, который является точкой входа в программу. Строчки кода выполняются сверху вниз. Наш main метод не может возвращать значения, иначе мы получим ошибку: « Error: Main method must return a value of type void ». Поэтому, метод просто выполнит вывод на экран. Давайте теперь вынесем получение строки в отдельный метод получения сообщения:

 public class HelloWorld < public static void main(String []args) < System.out.println(getHelloMessage()); >public static String getHelloMessage() < return "Hello World"; >> 

Как мы видим, при помощи ключевого слова return мы указали возвращаемое значение, которое использовали далее в методе println . В описании (определении) метода getHelloMessage мы указали, что он вернёт нам String . Это позволяет компилятору проверить, что действия метода согласуются с тем, каким образом он объявлен. Естественно, тип возвращаемого значения, указанного в определении метода, может быть более широким чем тип возвращаемого из кода значения, т.е. главное чтобы типы приводились друг к другу. В противном случае мы получим ошибку во время компиляции: « error: incompatible types ». Кстати, наверно сразу появился вопрос: Почему return относится к операторам управления ходом выполнения программы. А потому, что он может нарушать обычный ход выполнения программы «сверху вниз». Например:

 public class HelloWorld < public static void main(String []args)< if (args.length == 0) < return; >for (String arg : args) < System.out.println(arg); >> > 

Как видно из примера, мы прерываем выполнение метода main в том случае, если java программа наша вызвана без параметров. Важно помнить, что если у вас после return есть код, он становится недоступным. И это заметит наш умный компилятор и не даст вам запустить такую программу. Например, данный код не скомпилируется:

 public static void main(String []args)

Есть один «грязный хак» для обхода такого. Например, для целей отладки или ещё почему-то. Выше указанный код можно починить обернув return в if блок:

Оператор Return при обработке ошибок

Есть одно очень хитрое обстоятельство – мы можем использовать return совместно с обработкой ошибок. Сразу хочется сказать, что использование return в catch блоке это очень и очень плохой тон, поэтому стоит этого избегать. Но нам ведь нужен пример? Вот он:

 public class HelloWorld < public static void main(String []args) < System.out.println("Value is: " + getIntValue()); >public static int getIntValue() < int value = 1; try < System.out.println("Something terrible happens"); throw new Exception(); >catch (Exception e) < System.out.println("Catched value: " + value); return value; >finally < value++; System.out.println("New value: " + value); >> > 

На первый взгляд кажется, что должно вернуться 2, ведь finally выполняется всегда. Но нет, значение будет 1, а изменение переменной в finally будет проигнорировано. Более того, если бы value содержала бы объект и мы в finally сказали бы value = null , то из catch вернулась бы всё равно ссылка на объект, а не null . А вот из блока finally оператор return сработал бы правильно. Коллеги за такой подарок явно не скажут спасибо.

void.class

Ну и напоследок. Можно написать странную конструкцию вида void.class . Казалось бы, зачем и в чём смысл? На самом деле, в различных фрэймворках и хитрых случаях, когда используется Java Reflection API, это может очень понадобится. Например, можно проверять, какой тип возвращает метод:

 import java.lang.reflect.Method; public class HelloWorld < public void getVoidValue() < >public static void main(String[] args) < for (Method method : HelloWorld.class.getDeclaredMethods()) < System.out.println(method.getReturnType() == void.class); >> > 

Это может быть полезно в тестовых фрэймворках, где необходимо подменять реальный код методов. Но для этого нужно понимать, как этот метод себя ведёт (т.е. какие типы возвращает). Есть ещё второй способ реализации метода main из кода выше:

 public static void main (String[] args) < for (Method method : HelloWorld.class.getDeclaredMethods()) < System.out.println(method.getReturnType() == Void.TYPE); >> 

Довольно интересное обсуждение разницы между ними можно прочитать на stackoverflow: What is the difference between java.lang.Void and void? #Viacheslav

Источник

Читайте также:  Typescript объект вложенный объект
Оцените статью