【Java】返り値、引数をマスターしよう!現役エンジニアによるメソッド徹底解説

IT Java プログラミング

Javaのメソッドの基本が、この記事1本で解決できるように作成しました。

以下の内容をサンプルコードで解説していますので、ぜひ参考にしてみてください。

  • なぜメソッドを使うのか
  • 返り値(戻り値)の使い方
  • 引数の使い方

目次

  1. 現役エンジニアによるメソッド徹底解説
  2. メソッドの使い方について徹底解説
  3. まとめ

1.現役エンジニアによるメソッド徹底解説

メソッドってなに?

メソッドとは、一言でいうと「機能設定ボタン」です。
そのボタンを押すことで、設定した機能が実行できるようになります。

イメージとしては、炊飯器の炊飯スタートボタンでしょうか。
お米をセットしてスタートボタンを押すだけで、あらかじめ設定してある機能を使っておいしいお米を炊いてくれます。

メソッドは繰り返し使う機能を定義する

Javaでメソッドといえば以下のサンプルコードをご覧ください。

赤字の部分は、メソッドを使用している箇所で、
青地の部分は、メソッドを定義している箇所となります。

以下のコードでは、「はれお」という名前を引数としてあいさつ文を出力する処理です。

public class Practice1 {
	public static void main(String[] args) {
		writeHello("はれお");
	}

	public static void writeHello(String name){
		System.out.println(name + "さん、こんにちは。");
	}
}
【実行結果】
はれおさん、こんにちは。

挨拶の文章を様々な人向けに出力する場合には、以下のようにメソッドを量産していきます。

public class Practice1 {
	public static void main(String[] args) {
		writeHello("はれお");
		writeHello("けんじ");
		writeHello("あめめ");
	}

	public static void writeHello(String name){
		System.out.println(name + "さん、こんにちは。");
	}
}
【実行結果】
はれおさん、こんにちは。
けんじさん、こんにちは。
あめめさん、こんにちは。

メソッドは見やすくなるように使う

以下のように、3人の名前を標準入力で受け取ってあいさつ文を返す処理があります。
この場合、3回も同じようなコードが記載されているため冗長で見づらいです。

public class Practice1 {
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);

		System.out.println("名前を入力してください。");
        	//nextLineメソッド
        	String name1 = scanner.nextLine();
		System.out.println(name1 + "さん、こんにちは。");
		System.out.println("");
		
		System.out.println("名前を入力してください。");
		//nextLineメソッド
        	String name2 = scanner.nextLine();
		System.out.println(name2 + "さん、こんにちは。");
		System.out.println("");
		
		System.out.println("名前を入力してください。");
		//nextLineメソッド
        	String name3 = scanner.nextLine();
		System.out.println(name3 + "さん、こんにちは。");
		System.out.println("");
	}
}

上記の処理は、以下のようにメソッドを使ってシンプルに記載できるのです。

public class Practice1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		inputName(scanner);
		inputName(scanner);
		inputName(scanner);
	}

	public static void inputName(Scanner scanner) {
		System.out.println("名前を入力してください。");
		//nextLineメソッド
		String name = scanner.nextLine();
		System.out.println(name + "さん、こんにちは。");
		System.out.println("");
	}
}

メソッドの使い方について徹底解説

返り値をマスターしよう!

返り値は、メソッドを実行した後に完成した物のことです。
変数に「int型」「String型」など様々な型があるように、返り値にも様々な型があります。

ちなみに「返り値=戻り値」なので、どっちも同じだということを覚えておいてください!

メソッドは以下の青太字のところに設定します。
返り値がない場合には「void」。返り値がある場合には必要な型を指定します。

返り値がある場合には、その返り値の型と同じ変数にそのメソッドの返り値を入れます。

// 返り値なし
public static void writeHello() {
	System.out.println("こんにちは。");
}
// 返り値あり
public static String writeHello() {
	return "こんにちは。";
}

String hello = writeHello();

引数をマスターしよう!

引数は、メソッドを実行するために必要なパーツです
必要なパーツは様々な型を指定できるだけでなく、複数設定することができます

注意点としては、2つあります。

①メソッドで指定した引数の型、数、順番は守ろう
②メソッドを定義した時の引数名と、使用する時の引数名が混ざらないようにしよう

①メソッドで指定した引数の型、数、順番は守ろう

引数を「int型, String型」を2つ指定した場合には、使用する際には必ず「int型, String型」を同じ順番で同じ数、設定する必要があります。

実際には以下の例文をご確認ください。

public static void writeHello(int today, String name) {
	System.out.println("今日は" + today + "日です。");
	System.out.println(name + "さん、こんにちは。");
}
// 引数の型がどちらも合っているためOK
writeHello(19, "はれお");
// 1つ目の引数がString型になっているためエラー
writeHello("19", "はれお");

// 1つ目と2つ目の引数の型が逆になっているためエラー
writeHello("はれお", 19);

②メソッドを定義した時の引数名と、使用する時の引数名が混ざらないようにしよう

メソッドを定義した時の引数名と、メソッドを使用する際の引数名は同じにする必要はありません。
以下の通り、別の変数名を指定しても問題なく動作することを覚えておきましょう!

public static void writeHello(int today, String lastName) {
	System.out.println("今日は" + today + "日です。");
	System.out.println(lastName + "さん、こんにちは。");
}

int yesterday = 18;
String firstName = "太陽";
writeHello(yesterday, firstName); // 変数の型があっているため正常に動作

返り値と引数が複合しているパターンを見ていこう!

今までの内容を混合させて、返り値と引数があるメソッドを作成してみましょう。

public static String writeHello(String name) {
	return name +  "さん、こんにちは。";
}

String helloMessage = writeHello("はれお");
System.out.println(helloMessage); //はれおさん、こんにちは。

まとめ

Javaのメソッドについて学んでいきましたが、いかがでしたか?

返り値や引数は最初はイメージしづらいですが、一度覚えると様々な言語でも使用できるのでマスターしていきましょう♪

以下のサイトはシンプルですが、参考になりますので覗いてみてください。

https://www.javadrive.jp/start/method/index2.html