本記事の内容
- メソッドの基本
- メソッドの使い方
- メソッドのオーバーロードとは
プログラミングをする上で欠かせない存在なのがメソッド。メソッドとは一体どういった意味なのでしょうか。今回はプログラミング言語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つのメソッド名を知っておけば、どんな役割なのか覚えやすくなるのです。たとえば、引き算をしたいメソッドといえば「〇〇」といった感じですね。
オーバーロードの使い方
オーバーロードの使い方についてみていきましょう。オーバーロードは下記の様に記述すれば使用可能です。
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のメソッドについて解説してきました。メソッドはプログラミングをする上で欠かせないので、ぜひ本記事を繰り返しお読みいただき、覚えてみてくださいね。
今回は以上です。