メソッドの概念
- メソッドを呼ぶと定義された処理が実行される
- メソッドを呼ぶ時に引数を渡す場合がある。
- メソッドを呼ぶと戻り値が返ってくる場合がある。
メソッドの定義
例: int型の数値を2つ足した合計を返すメソッドの定義
引数
- メソッド名の後ろのカッコの中に、型と引数名を書く。
- 複数の場合はカンマで区切る
- 引数がない場合は書かない(カッコは必要)
戻り値(返り値)
- 戻り値の肩をメソッド名の前に書く。
- 戻り値はreturn文で指定する。
- 戻り値がない場合は、戻り値の型として「void」を指定する。return文はなくても良い(あっても良いがreturnの後ろに何も書かない)。
アクセス修飾子
- フィールドと同様にアクセス修飾子をつけることで、そのメソッドを呼び出すことのできる呼び出し元を制限することができる。
- アクセス修飾子は戻り値の型の前に書く。
処理で使える変数
- 引数
- フィールド
- その場で定義した変数
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
class Person { /** 年齢 */ private int age = -1; /** 名前 */ private String name = null; /** * フィールドageをセットする(セッター) */ public void setAge(int a) { age = a; } /** * フィールドnameをセットする(セッター) */ public void setName(String name) { // 引数nameとフィールドnameを区別しなければならないことに注意 this.name = name; } /** * フィールドが正しくセットされているか確認する */ private boolean checkField() { if (name != null && age >= 0) { return true; } else { return false; } // これは「return name != null && age >= 0;」と書ける。 } /** * 自己紹介を行う */ public void printSelfIntroduction() { if (checkField()) { System.out.println("私の名前は" + name + "で" + age + "歳です。"); } else { System.err.println("フィールドが不正です。"); } } } |
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) { Person person = new Person(); person.setAge(19); person.setName("たろう"); person.checkField(); // コンパイルエラー(privateなメソッドは呼び出せない) person.printSelfIntroduction(); } } |
教科書
- P.66: メソッドの定義
- P.68: メソッドの呼び出し(1)
- P.70: メソッドの呼び出し(2)