※アクセス修飾子についてはここでは取り上げない

定義

アクセス修飾子 戻り値の型 メソッド名(呼び出し元から受け取る引数を宣言){
}
引数が必要ない場合は引数を記述しない()の中は何も書かない。
戻り値が必要ない場合は戻り値の型は「void」
int add(int a,int b){
   return a+b;
}
引数aとbを受け取り足し合わせた数を戻り値として返す。
戻り値がある場合必ずreturnで戻り値を返す。
return以降の処理はせずメソッドを抜ける
戻り値がない場合でもreturnでメソッドを抜けることができる。

呼び出し

メソッド名(メソッドに必要なパラメータを引数として送る);
int a=3;
int b=5;
int num=add(a,b)+7;  // 戻り値のあるメソッドは変数のように扱うことができる
add(a,b)は戻り値の8に置き換わるのでnumは15になる。
int a=3;
int b=5;
if(isSmall(a,b)){   // メソッドの呼び出し。戻り値はaがbより小さければtrueが返ってくる
}
...
boolean isSmall(int a,int b){   // メソッドの定義。戻り値はboolean
   return a<b;   // 条件式の結果を戻り値にしている
}
6行目のa,bはここで初めて宣言される変数。1,2行目のa,bとは別の変数

オーバーロード

int add(int a,int b){
   return a+b;
}
int add(int a,int b,int c){
   return a+b+c;
}
引数の数や型が違えば同じメソッド名で複数定義できる。
戻り値だけ違うメソッドは定義できない。

オーバーロードの使い道
void print(String s){
	System.out.println(s);
}
void print(int n){
	System.out.println(n);
}
異なる型を同じように出力できる。
void initialize(String name, int age){	// ③
	System.out.println("名前:" + name + " " + age + "歳");
}
void initialize(String name){		// ②
	initialize(name, 20);
}
void initialize(){			// ①
	initialize("名無し");
}
入力されていない情報に初期値を与える。
引数の無い①を呼び出すと名前を"名無し"として②を呼び出す。②では年齢を20として③を呼び出し出力。
出力は「名前:名無し 20歳」になる。「名無し 20」が初期値。
名前と年齢がわかっていれば最初に①を呼ばずに③を呼べば良い。
例えば initialize("佐藤", 25); と呼べば③が呼ばれ初期値が入ることなく引数の名前・年齢が出力される。
同様に initialize("鈴木"); と名前だけ引数にすると②が呼ばれ「20」の初期値が加わって出力される。