Javaのメソッド(関数)を使いこなす!メソッドの宣言・引数・戻り値

Javaのメソッド(関数)を使いこなす!メソッドの宣言・引数・戻り値

この記事では、Javaのメソッド(関数)について使い方を勉強していこう。

Javaのプログラムの大部分はメソッドから構成されており、プログラマであればほぼ毎日のようにメソッドは書くことになるだろう。メソッドを効率よく上手に書けるようになるにはある程度の経験が必要だ。

この記事では、メソッドの基本的な使い方から応用的な例まで紹介するので、入門者の人も現役のエンジニアの人も最後までぜひ目を通してほしい。

メソッドとは?

メソッドとは一連の処理をまとめたコードの集まりを指す。ここでいう「処理」の例を挙げると”2つの数を足せ”、”顧客データをデータベースに保存せよ”などが考えられる。

メソッドを使う目的は多種多様でプログラムの大部分はメソッドから構成される。

なお、メソッドは関数やファンクションといった呼び方もされるが意味はまったく同じだ。Javaではメソッドと呼ぶのが慣例となっているので、この記事ではメソッドで統一したい。

メソッドの使い方

メソッドの使い方を例となるコードとともに見ていこう。

import java.io.File;

class MethodClass {

    private String text = "This is sample Text.";

    // 2つの引数を足して和を返すメソッドの例。インスタンスメソッド。
    public int addTwoNumbers(int numberA, int numberB) {
        return numberA + numberB;
    }

    // メンバ変数の値を返すメソッドの例。インスタンスメソッド。
    public String getText() {
        return text;
    }

    // ファイルをアップロードするメソッドの例。クラスメソッド。
    public static void uploadData(File file) {
        System.out.println("File uploaded -> " + file);
    }
}

class MainClass {
    public static void main(String[] args) {

        MethodClass methodClass = new MethodClass();

        int result = methodClass.addTwoNumbers(2, 3);
        System.out.println("Result -> " + result);

        String text = methodClass.getText();
        System.out.println("Text -> " + text);

        File newFile = new File("filename.txt");
        MethodClass.uploadData(newFile);
    }
}

メソッドの宣言

Javaではメソッドの宣言は以下のような構文でおこなう。

public int addTwoNumbers(int numberA, int numberB) {
    return numberA + numberB;
}

このメソッドの一列目の文字列はそれぞれ以下のような役割を持つ。

  • public ⇨ アクセス修飾子
  • int ⇨ 戻り値のデータ型
  • addTwoNumbers ⇨ メソッドの名前
  • int numberA ⇨ 引数1のデータ型と名前

引数と戻り値

メソッドは複数の「引数」と通常ひとつの「戻り値(返り値とも呼ばれる)」を持つことができる。

Javaでは引数・戻り値ともにデータ型を指定する。

  • 引数 – メソッドで使用するパラメーター。メソッドは複数のパラメーターを持つことができる。
  • 戻り値 – メソッドの処理の結果としての値。戻り値は通常ひとつのみだが、ユーザが定義したクラスやTupelオブジェクトを用いることにより複数の値を返すこともできる。
public int addTwoNumbers(int numberA, int numberB) {
    return numberA + numberB;
}

上記のメソッドにおいては、「numberA」と「numberB」が引数。return命令の後に記述されている「numberA + numberB」が戻り値となる。

一列目のアクセス修飾子のあとに書かれている「int」が戻り値のデータ型となる。

メソッドの種類

メソッドには、インスタンスメソッドとクラスメソッド(staticメソッド)が存在する。

  • インスタンスメソッド ⇨ クラスのインスタンスからのみ呼び出すことができるメソッド。通常、メソッドといえばこのインスタンスメソッドを指す。
  • クラスメソッド⇨ クラスのインスタンスを生成せずとも呼び出すことができるメソッド。クラスメソッドはstaticメソッドとも呼ばれ、宣言する際にstatic修飾子を付けられる。

インスタンスメソッドの呼び出し

ethodClass methodClass = new MethodClass();
int result = methodClass.addTwoNumbers(2, 3);

インスタンスメソッドではまず最初にnew構文を使い新しいインスタンスを生成し、その後にインスタンスからメソッドを呼び出す。

クラスメソッドの呼び出し

MethodClass.uploadData(newFile);

クラスメソッドはクラスのインスタンスを生成せずともすぐに呼び出せる。サンプルコードの「MethodClass」は大文字のMから始まっている点に注意してほしい。