Javaのメソッドとは?書き方や使い方をまとめてみた!

Javaのメソッドとは何ですか?意味や使い方を初心者にも理解できるように教えてほしい。
こんなお悩みにお答えします。
この記事を一通り読み終えれば、Javaのメソッドの全体像を知ることができるだけでなく、Javaエンジニアとして一段階スキルアップができますよ。

僕は現役Javaエンジニアです。Javaの最難関資格も保有しているので、Javaのメソッドの意味から使い方までを、わかりやすく解説していきますね。
記事の後半では、メソッドのオーバーロードとは何なのかについてもまとめました。
ぜひ最後までご覧ください。

Javaのメソッドの基本
まずはJavaのメソッドの基本を押さえていきましょう。
- メソッドとは
- メソッドの役割
メソッドとは
メソッドとは、処理をひとまとめにしたものです。英語にするとMethodで、翻訳すると「方法」「方式」です。
Javaはクラスを定義して、その中にメソッドを記述していきます。
メソッドの役割
メソッドは主にプログラムを動かすための処理を行います。
プログラミングをしていると、同じ処理を何度も繰り返し行う場面があります。そこでメソッドを1つ作っておけば、使いまわすことが可能。
反対にメソッドがない場合、同じ処理を何度も記述する必要があります。そうなると、コードの量が増えてしまい、可読性が悪くなります。
Javaのメソッドの使い方
ではJavaのメソッドの使い方について解説していきますね。
- メソッドの書き方
- メソッドの修飾子について
- メソッドの戻り値とは
- メソッドの呼び出し方
- メソッドの引数の使い方
- メソッドのreturnの使い方
順番に見ていきましょう。
メソッドの書き方
実際にJavaのメソッドの書き方をご覧ください。
Javaのメソッドは、下記のように記述します。
修飾子 戻り値の型 メソッド名(引数){
// メソッドの処理
}
上記に当てはめて書いてみます。
public int test() {
int = 1;
return 1;
}
メソッドの修飾子や戻り値については、次以降で解説していきます。
メソッドの修飾子について
メソッドを書く際に、修飾子と戻り値の型を記載します。これらはどんな役割があるのでしょうか?
まず修飾子には「アクセス範囲の制限」を行う役割があります。
public | どこからでもアクセスが可能 |
protected | 同一クラスや同一パッケージ、サブクラスからのアクセスを許可 |
private | 同一クラスからのアクセスのみ許可 |
なし | 同一パッケージ内からのみアクセス許可 |
上記の通りです。
アクセス修飾子は、時と場合によって使い分けます。たとえば他のクラスから呼ばれたくないときは、privateを使うといった感じです。
プログラミングをしていると予期せぬエラーがでる場面があります。修飾子をうまく活用すれば、関連性のない他のクラスから呼ばれない様にできます。
メソッドの戻り値とは
戻り値についても簡単に解説します。
戻り値とは、呼び出し元のメソッドに値を返す際の、データ型のことを言います。たとえば数値型で返したい時にはintを使うといった感じです。
private static int Test() {
return 10;
}
上記の通り。そして戻り値がない場合は、voidを使います。
private static void Test() {
//処理
}
voidとは、翻訳すると「空所」という意味です。戻り値がなければvoidと覚えると良いでしょう。
メソッドの呼び出し方
ではメソッドを呼び出す方法を見ていきましょう。
戻り値を返さないメソッドの呼び出し方は、下記の様に記述します。
メソッド名(引数);
一方で、戻り値を返す場合は、以下の様に記述します。
戻り値を格納するオブジェクト変数名 = メソッド名(引数);
メソッドの引数の使い方
メソッドの引数の使い方も解説していきます。
引数を渡すには、呼び出し元のメソッドの引数に値を指定します。下記を見てみましょう。
class Test1 {
public static void main(String[] args) {
test2(10, 20);
}
public static void test2(int num1, int num2) {
System.out.println(num1 + num2);
}
}
mainメソッド内で、test2メソッドに引数として、10と20を渡しました。
test2メソッドではint型として受け取ります。出力時に10+20の足し算をして出力をします。
実行結果:
30
引数を渡す場合、受け取り先の引数名は何でも書けます。今回はnumという引数名にしましたが、たとえばaとかでもOKです。
とはいえプログラムのメソッド名や引数名は、基本的に理にかなった名前をつけるべきです。
よくわからないメソッド名をつけると、後で見返したときに、どんな処理をしているのかが、ぱっと見でわかりづらいからですね。
特にチーム開発時では、他人が見てもわかりやすい引数名を付けていくと良いですね。
メソッドのreturnの使い方
メソッドのreturn文の使い方についても見ていきましょう。return文は、戻り値の型に合わせた型の値を返す式を書きます。
class Test1 {
public static void main(String[] args) {
int rs = test2(10, 20);
System.out.println(rs);
}
public static int test2(int num1, int num2) {
return num1 + num2;
}
}
上記を実行してみます。
実行結果:
30
上記はtest2メソッドの戻り値をint型にし、returnで10+20の計算結果を返しています。それをrsという変数に代入し、出力した結果、30が返ってきたという流れです。
Javaのメソッドのオーバーロードとは
メソッドのオーバーロードについて解説しますね。
オーバーロードとは、1つのクラス内で複数の同じ名前のメソッドを定義することを言います。
通常、同じクラス内で同じメソッド名をつけることはできません。しかしオーバーロードをすれば使用が可能です。
オーバーロードを使うメリットや、実際の使い方について見ていきましょう。
オーバーロードを使うメリット
メソッドのオーバーロードを使うメリットは以下の通り。
- 1つのメソッド名を覚えておくだけで良い
- 引数の数や引数の型を変えるだけで使い分けができる
大規模な開発ではソースコードが大量に記述されています。その中でメソッド名がたくさんあると、覚えるのが大変ですよね。
オーバーロードを使えば、1つのメソッド名を知っておけば、どんな役割なのか覚えやすくなるのです。たとえば、引き算をしたいメソッドといえば「subtraction()」といった感じです。
オーバーロードの使い方
オーバーロードの使い方についてみていきましょう。
オーバーロードは下記の様に記述すれば使用可能です。
class Test1 {
public static void main(String[] args) {
test2("10", "20");
}
public static void test2(int num1, int num2) {
System.out.println(num1 + num2);
}
public static void test2(String str1, String str2) {
System.out.println(str1 + "+" + str2 + "は30");
}
}
上記はtest2という同じメソッド名を2つ用意し、mainメソッドでString型で10と20を渡しました。同じString型のtest2メソッドで引数を受け取れましたね。
実行結果:
10+20は30
次に引数の数が違うパターンを見ていきましょう。
class Test1 {
public static void main(String[] args) {
test2(10, 20, 30);
}
public static void test2(int num1, int num2) {
System.out.println(num1 + num2);
}
public static void test2(int num1, int num2, int num3) {
System.out.println(num1 + num2 + num3);
}
}
上記はtest2メソッドが二つありますが、引数の数が2つと3つに分かれています。
mainメソッドで引数が3つのtestメソッドに引数を渡してみます。こちらを実行してみましょう。
実行結果:
60
計算結果がしっかりと返ってきました。
Javaのメソッドの書き方や使い方:まとめ
Javaのメソッドについて解説してきました。
メソッドはプログラミングをする上で欠かせないので、ぜひ本記事を繰り返しお読みいただき、覚えてみてくださいね。
以下では、Javaエンジニアの学習ロードマップをご紹介していますので、あわせて参考にしてみてください。
