Java基礎 第7回では配列について解説しました。
「メソッド」については今までの記事と違い、章ごとに記事をわけてご紹介します。
1つの記事では収まりきらないほど、メソッドは奥が深いものとなっています。
しかし、ひとつひとつわかりやすく嚙み砕いてご紹介しておりますので初学者の方も安心して、ひとつひとつクリアしていきましょう!
この記事は、プログラミング言語Javaにおける「メソッド」の基本的な構造とその作用について、詳細に解説しています。メソッドの修飾子、戻り値の型、メソッド名、引数リスト、そしてメソッド本体の各要素を順に見ていき、各要素が何を意味し、どのように機能するかを具体的なコード例を交えて説明しています。
初学者の方にピッタリな内容になっていますので、是非一緒にコード例など打込みながら読んでみてください。
メソッドの基本構造
メソッドは、一連のプログラムの命令をまとめて名前を付けたものです。これにより、同じコードを何度も書く必要がなくなり、プログラムが読みやすくなり、またエラーの発生を防ぐことができます。
Javaにおけるメソッドの基本構造を見てみましょう。
修飾子(Modifiers)
メソッドに対するアクセスレベルや振る舞いを制御します。Javaでは、主に以下のような修飾子が用いられます。
修飾子 | 説明 |
---|---|
public | 任意のクラスからアクセス可能 |
protected | 同じパッケージ内またはサブクラスからアクセス可能 |
private | 同一クラス内からのみアクセス可能 |
static | インスタンス化せずアクセス可能。 メソッドがクラスレベルで作用することを示します。 |
public static void myMethod() {
// ここがメソッドの本体
}
上記の例では、publicとstaticが修飾子となります。これは、このメソッドがどこからでもアクセスでき、かつインスタンス化せずとも使用できることを示しています。
戻り値の型(Return Type)
メソッドが処理を終えた後に返す値の型を示します。戻り値がない場合は、voidとします。
public static int calculateSum() {
// ここがメソッドの本体
return 0;
}
上記の例では、intが戻り値の型となります。これは、このメソッドがint型の値を返すことを示しています。
メソッド名(Method Name)
そのメソッドを表す名前のことです。
Javaでは、一般的には動詞または動詞+名詞の形を採用します。
例えば、calculateSum、displayResultなどです。
メソッド名はそのメソッドの機能を表すように選びます。
以下は命名についての表です。
規則 | 説明 |
---|---|
動詞または動詞+名詞 | メソッド名は動詞、または動詞+名詞の形を一般的に使用します。 例:calculateSum,displayResult |
キャメルケース | Javaのメソッド名は小文字のキャメルケースを使用します。 最初の文字は小文字で、次の単語の最初の文字は大文字です。 例:calculateSum |
パスカルケース ※一般的には使われない | 全ての単語の最初の文字は大文字です。 Javaでは主にクラス名に使用されますが、メソッド名では一般的には使用されません。 例:CalculateSum |
意味のある名前 | メソッド名はそのメソッドの機能を表すように選びます。 |
省略しない | 可能な限り省略形を避け、完全な単語を使用します。 これにより、コードの可読性が向上します。 例:calcSumではなくcalculateSum |
動詞の使用 | メソッド名には動詞を使用することが推奨されます。 なぜなら、メソッドは通常、オブジェクトに何らかの行動を命じるからです。 例:displayResult |
引数リスト(Parameter List)
メソッドが処理を行うために必要な情報を外部から受け取るためのパラメータを定義します。
各パラメータは型と変数名を指定します。複数のパラメータがある場合はカンマで区切ります。
引数がない場合は空のままとします。
public static int calculateSum(int num1, int num2) {
// ここがメソッドの本体
return num1 + num2;
}
上記の例では、int num1, int num2が引数リストとなります。
これは、このメソッドが2つのint型の引数を必要とし、それらを加算した結果を返すことを示しています。
メソッド本体(Method Body)
メソッドが行う具体的な処理を記述します。メソッド本体は波括弧 { } の中に記述し、その中には0個以上のJavaのステートメント(文)を記述します。
public static int calculateSum(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
上記の例では、int sum = num1 + num2;とreturn sum;がメソッド本体となります。これは、このメソッドが引数num1とnum2を加算し、その結果を返すことを示しています。
メソッド内での処理の記述方法
メソッド本体の中には、そのメソッドが行う具体的な処理を記述します。これは一連の命令を含み、これらの命令はプログラムが実行されると順に処理されます。メソッド本体の記述方法は、基本的にプログラムの主要部分(mainメソッド)での記述方法と同じです。つまり、変数の宣言、条件分岐、ループ処理、オブジェクトの操作など、Javaの各種構文を利用することができます。
例えば、次のようなメソッドがあります。
public static void printNumbers(int limit) {
for (int i = 1; i <= limit; i++) {
System.out.println(i);
}
}
このprintNumbersメソッドでは、引数として与えられた数値までの整数を順に出力します。メソッド本体には、forループを使用して数値を出力する一連の命令が記述されています。
戻り値の返却
メソッドが戻り値を持つ場合(戻り値の型がvoid以外の場合)、メソッド本体の最後にはreturn文を記述します。return文は、メソッドの実行結果を呼び出し元に返す役割を持ちます。
例えば、次のようなメソッドがあります。
public static int calculateSum(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
このcalculateSumメソッドでは、2つの整数の和を計算し、その結果を返します。メソッド本体には、引数の加算とその結果を返すためのreturn文が記述されています。
return文が実行されると、その時点でメソッドの実行は終了し、制御は呼び出し元に返されます。そのため、return文以降の命令は実行されません。この特性は、特定の条件で早期にメソッドを終了したい場合などに便利です。
まとめ
以上、今回はメソッドの基本構造について解説していきました。
色々と細かくルールがあるように見えますが、使っていくと自然と使えてくるものです。頭だけで理解するのではなく、是非手を動かして今回のコード例などを写しながら実践的に身につけていってみてください
次回は具体的にメソッドを定義して、使用するところをご紹介していきます。
お楽しみに!
コメント