メソッドはクラス内に定義するもので、処理を記述するブロックです。
メソッドの構文
引数の数が決まったメソッド以外に、引数の数が可変のメソッドも定義できます。
- (固定長引数を使用したメソッドの構文)
- [修飾子] 戻り値の型 メソッド名([引数1の型 引数名1, 引数2の型 引数名2, …]) { // 処理 return 戻り値; //(戻り値が無い(void)の場合は不要) }
- (可変長引数を使用したメソッドの構文)
- メソッド名 (型名… 変数名){ }
- 可変長引数は、型名の後ろに…(ピリオド3つ)を指定します。
- 可変長引数は1つのメソッドに1つのみ指定できます。
- 可変長引数と通常の引数を混在させる場合は、可変長引数は引数の一番最後にのみ定義できます。
項目 | 解説 |
---|---|
修飾子 | このメソッドを参照できる範囲や、static、final等のメソッドの性質を指定する修飾子を組み合わせて指定する。 |
戻り値の型 | このメソッドが返す値の型を指定する。 戻り値が無い場合は「void」を指定する。 |
メソッド名 | メソッドを識別するための名前を指定する。 |
引数 | メソッドに渡すパラメータを型と変数名のセットで指定する。 複数指定する場合はカンマで区切って指定可。 引数が不要な場合は未指定でOK。 |
戻り値 | このメソッドが返す値をreturn句で指定する。 戻り値が無い場合はreturn句は省略可能。 |
メソッド名の定義ルール
メソッド名には以下ルールがあります。
- 文字は、英字(大文字・小文字)、数字、アンダースコア(_)を使用できる
- 先頭文字は、英字(大文字・小文字)またはアンダースコア(_) で始まる必要がある
- 予約語は使用不可
また、メソッド名はキャメルケース(Camel Case)形式で定義することが推奨されます。
キャメルケース形式は複数の単語を連結する際、最初の単語を小文字で書きその後の単語の先頭文字は大文字で書く命名方式です。
例)calculateTotalAmount()
メソッドの実装例
メソッドを実装したサンプルです。
public class SampleClass {
// メソッド例1(引数が2つ、int型の戻り値を返す、他クラスからも参照可能)
public int calcPlus(int n, int m) {
return n + m;
}
// メソッド例2(引数なし、戻り値なし、自クラス内からのみ参照可能)
private void print() {
System.out.println("Hello!");
}
// メソッド例3(引数1つ、String型の戻り値を返す、静的メソッド)
public static String greet(String name) {
return "Hello," + name;
}
// メソッド例4(可変長引数)
public void printNumbers(int... nums) {
for (int n : nums) {
System.out.println(n);
}
}
}
メソッド例1はint型の引数を2つ受け取って、加算した値をint型の値で返すメソッドです。public指定なので他クラスからもアクセスできます。
メソッド例2は引数も戻り値も無いメソッドで、呼び出すとコンソールにHelloと出力するメソッドです。private指定なので自クラスからのみアクセス可能です。
メソッド例3はstatic修飾子を指定してあるのでクラスがインスタンス化していなくともアクセスできます。
メソッド例4は可変長引数を使用したメソッドです。int型の引数を任意の数渡すことができます。
メソッドまとめ
- メソッドは引数を受け取ることができる(引数なし、引数1つだけ、引数複数 すべてOK)
- 戻り値はあっても無くてもOK。戻り値がある場合は1つのみ可能(複数の戻り値は不可)
- アクセス修飾子(public/protected/なし/private)を指定して、メソッドを参照できる範囲を指定可能
- static修飾子で静的メソッドにすることも可能
- final修飾子を指定するとオーバーライドができなくなる
- 可変長引数を使用して任意の個数の引数を受け取ることが可能(Java5.0以降)に
コメント