Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaメソッドの使い方を徹底解説!定義・呼び出し・引数・戻り値の基本

オブジェクト指向プログラミングにおいて、メソッドとは特定のタスクを実行するコードブロックのことです。例えば、顧客の銀行口座に購入のための十分な残高があるかどうかを確認したり、学生名のリストをアルファベット順に並べ替えたりする処理がメソッドに該当します。

このチュートリアルでは、実際のコード例を交えながら、Javaにおけるメソッドの使い方について解説します。メソッドの作成方法、Javaメソッドの構文、そしてメソッドの呼び出し方を見ていきましょう。この記事を読み終える頃には、Javaメソッドを使いこなせるようになっているはずです。

Javaメソッドとは

Javaメソッドは、特定のタスクを実行するコードブロックを定義するために使われます。オブジェクト指向プログラミングでは、メソッドは「関数」と呼ばれることもあります。

開発者がコード内でメソッドを使用する理由は主に2つあります。

1つ目は、コードの再利用が可能になる点です。一度メソッドを宣言すれば、コード内で何度でも再利用できます。そのため、同じタスクを複数回実行する必要がある場合も、コードを書き直す代わりにメソッドを呼び出すだけで済みます。

2つ目は、コードの可読性が向上する点です。メソッドを使うと、コードは固有の名前を持つ独立したブロックとして保存されるため、メインプログラムがすっきりと整理されます。

Javaには大きく分けて2種類のメソッドがあります。標準ライブラリメソッドユーザー定義メソッドです。

標準ライブラリメソッドとは、Java言語に組み込まれているメソッドのことです。例えば、println() メソッドは java.io.PrintStream ライブラリの一部です。

以下は、組み込みの println() メソッドを使用したプログラムの例です。

class Main {
	public static void main(String[] args) {
		System.out.println("This is a print statement.");
	}
}

このコードを実行すると、次の出力が得られます。

This is a print statement.

一方、ユーザー定義メソッドとは、Javaクラスの中で開発者自身が必要に応じて定義するメソッドのことです。

Javaのユーザー定義メソッド

Javaでは、ユーザー定義メソッドは開発者のニーズに合わせてクラス内に定義されます。ユーザー定義メソッドには、自分が書いたコードブロックが含まれ、コード内の特定の機能としてひとまとまりになります。

メソッドを使い始める前に、まずメソッドを定義(宣言)する必要があります。Javaでメソッドを宣言する構文は以下の通りです。

modifier static returnType methodName (arguments) {
	// ここにコードを記述
}

この構文を分解して見ていきましょう。

  • modifier(修飾子): メソッドのアクセスレベルを指定します(public、private など)。
  • static: 省略可能なキーワードで、クラスのオブジェクトを作成せずにメソッドへアクセスできるようにします。
  • returnType(戻り値の型): メソッドが返すデータの型です(int、float、String、double など)。
  • methodName(メソッド名): 宣言するメソッドの名前です。
  • arguments(引数): メソッドに渡される値です。引数リストには0個、1個、または複数の値を指定できます。

それでは、メソッドを使用するJavaプログラムの例を通じて、具体的な動作を確認してみましょう。

ある地元のコーヒーショップ向けに注文を処理するアプリを開発しているとします。プログラムの最後に「注文の準備ができました」というメッセージを出力したいと考えます。このタスクは、次のようなコードで実現できます。

class Main {
	public static void orderReady() {
		System.out.println("The order is ready.");
	}
}

このコードでは、orderReady() というメソッドを宣言しています。最初の行では、メインプログラムが記述される Main クラスを宣言しています。

次に、orderReady() というメソッドを作成しました。この orderReady() メソッドは引数を受け取らず、戻り値も返しません。

orderReady() メソッドが呼び出されると、メソッド本体内のコードが実行されます。つまり、「The order is ready.」というメッセージがコンソールに出力されます。

しかし現状では、このコードは何もしません。それはまだメソッドを呼び出していないためです。メソッド内のコードを実行するには、メソッドを呼び出す必要があります。メソッドの呼び出し方は以下の通りです。

import java.util.Scanner;

class Main {
	public static void orderReady() {
		System.out.println("The order is ready.");
	}

	public static void main(String[] args) {
		orderReady();
	}
}

このコードを実行すると、次の出力が得られます。

The order is ready.

上記のコードでは、メインプログラムのコードを含む main 関数を定義し、その中で orderReady() を使って orderReady 関数を呼び出しています。

引数を受け取るJavaメソッド

さらに、Javaメソッドは引数を受け取ることができ、メソッドにデータを渡すことが可能です。例えば、バリスタにとってどの注文が準備できたのかがより分かりやすいように、「Order #[注文番号] is ready.」というメッセージを出力したいとしましょう。これは次のコードで実現できます。

class Main {
public static void orderReady(int orderNumber) {
		System.out.println("Order #" + orderNumber + " is ready.");
	}
	public static void main(String[] args) {
		orderReady(12);
	}
}

このコードを実行すると、次の出力が得られます。

Order #12 is ready.

この例では、コードが orderNumber というパラメータを受け取ります。上記では12という値を orderNumber パラメータとして渡しており、orderReady() メソッドがその値を読み取ります。その結果、「Order #12 is ready.」が出力されます。ここでの12は、orderNumber パラメータに渡した値です。

戻り値を返すJavaメソッド

Javaメソッドは、メインプログラムに値を返すこともできます。例えば、2つの数値を掛け合わせるアプリを作成しているとします。これらの数値を関数内で掛け算し、その結果をメインプログラムに返したいと考えます。

これは次のコードで実現できます。

class MultiplyNumbers {
	public static int multiplyNumbers(int numberOne, int numberTwo) {
		return numberOne * numberTwo;
	}

	public static void main(String[] args) {
		int numberOne = 7;
		int numberTwo = 9;
		int multiplied = multiplyNumbers(numberOne, numberTwo);
		System.out.println(numberOne + " x " + numberTwo + " is: " + multiplied);
	}
}

このコードを実行すると、次の出力が得られます。

7 x 9 is: 63

このコードでは、multiplyNumbers() メソッドを使って2つの数値を掛け合わせています。multiplyNumbers を呼び出す際には、掛け合わせたい2つの数値をパラメータとして指定する必要があります。上記の例では、7と9を掛けています。

そして、multiplyNumbers() メソッドはこれら2つの数値を掛け合わせた結果を返し、その数値がメインプログラムに渡されます。

プログラムを実行したときの処理の流れを、ステップごとに見てみましょう。

  1. 変数 numberOne が宣言され、7という値が代入されます。
  2. 変数 numberTwo が宣言され、9という値が代入されます。
  3. multiplyNumbers() が呼び出され、変数 numberOnenumberTwo がパラメータとして指定されます。このメソッドの結果は変数 multiplied に代入されます。
  4. 「[Number1] x [Number2] is: [Result]」という形式のメッセージがコンソールに出力されます。ここで「Number1」は numberOne の値、「Number2」は numberTwo の値、「Result」は multiplied の値です。

まとめ

メソッドはオブジェクト指向プログラミングの重要な要素であり、特定のタスクを実行するコードブロックを定義し、何度でも再利用できるようにします。Javaでメソッドを使うことで、コードの可読性と効率性が大幅に向上します。

このチュートリアルでは、Javaでのメソッドの使い方、メソッドの呼び出し方、そしてパラメータや return 文の使い方について解説しました。この記事の内容を実践すれば、Javaメソッドを自信を持って使いこなせるようになるでしょう。

  1. JavaのMath.random()メソッド徹底解説!乱数生成の基本から範囲指定まで

    JavaのMath.random()メソッドは、0.0以上1.0未満の擬似乱数(疑似ランダムな数値)を生成するためのメソッドです。生成された乱数に別の数値を掛けることで、0〜1以外の任意の範囲の乱数を取得することもできます。結果が0になることはあっても、1以上になることはありません。 プログラミングで乱数が必要になる場面 プログラミングをしていると、ランダムな数値を生成したい場面によく出会います。例えば、クルーズ船会社を運営しているとしましょう。顧客の注文番号として使う予約参照番号をランダムに生成したり、数当てゲーム用のランダムな数字を作りたいといったケースが考えられます。 Javaには、乱

  2. Javaのデフォルトメソッドを使ってダイヤモンド問題を解決する方法

    継承(Inheritance)とは 継承とは、あるクラスが別のクラスの性質(プロパティやメソッド)を受け継ぐ、2つのクラス間の関係のことです。この関係は extends キーワードを使って次のように定義します。 public class A extends B{ } 性質を受け継ぐ側のクラスは「サブクラス(子クラス)」、受け継がれる側のクラスは「スーパークラス(親クラス)」と呼ばれます。 継承が行われると、スーパークラスのメンバーのコピーがサブクラスのオブジェクト内に作成されます。そのため、サブクラスのオブジェクトを使えば、親クラスと子クラスの両方のメンバーにアクセスすることが可能です。 多重