Javaではたびたび引数という単語を目に耳にします。
しかしこれはプログラミング用語で聞きなじみがなく
初心者にとっては理解に苦しみます。
さらに仮引数や実引数と何が違うの?、
引数を渡すってどういうことなの?となるでしょう。
そこでJava初心者さんも含め
わかりやすく引数について解説していきます。
またこの引数は「メソッド」という単語のお話が
何度もでてきます。
メソッド?というあなたはこちらを見て、
まずはメソッドを理解していきましょう。
引数とは??
メソッドを呼び出す時に呼び出し元から値を渡す、
その渡される値のことを「引数」といいます。
もっと簡単に言い表すと、
「()」の中の値や変数が引数です。
これだけでは頭がぽかんとしますよね。
では「()」を実際に使ってみます。
ソースコードにすると
public class Test {
public static void book(int a){
System.out.print(a); //aを表示する
}
public static void main(String[] args) {
book(1); //bookメソッドを呼びしています。
}
}
を実行すると
1
と表示されます。
ソースコードを説明すると
bookというメソッドを作成するときに「a」という引数を設定しました。
その後book(1);でメソッドを呼び出したときに「1」という引数を設定しました。
そのおかげでソースコードが実行されると「1」が表示されます。
すごくまとめると
()の中に入っている値を引数といいます。
仮引数と実引数とは何?違いは?
では仮引数と実引数とはなんでしょう。
先ほどのソースコードで説明すると、
「a」が仮引数で「1」が実引数です。
たったこれだけのことです。
引数がないときは「()」は必要ない?
実際に「()」を抜きで実行するとエラーが表示されます。
()がないから引数がないというわけではなく、
()でカッコの中身がないから引数がないと読み取ってくれます。
なので()はかならず付けましょう。
引数を渡すとは?受け取るとは?どういう意味
引き続き先ほどのソースコードで説明すると
book(1);でメソッドを呼び出した際に作成したメソッドの(a)に1を渡します。
そして(a)が1を受け取ります。
これが引数を渡す、受け取るです。
難しい、、では簡単に渡す、受け取るを言い表すと、
実引数が渡す値、仮引数が受け取る変数と言います。
先ほどのソースコードに合わせると
実引数の1が渡す値、仮引数のaが受け取る変数です。
先ほどのソースコードではさらっと
メソッドを定義したりメソッドを呼び出したりとしました。
改めて実引数、仮引数、渡す、受け取るがだんだんわかってきたところで
メソッドの定義方法とメソッドの呼び出し方の定型文を見ていきましょう。
メソッドの定義方法とメソッドの呼び出し方の定型文
私のメソッドを解説した記事を見たあなたであれば
定型文の中にあった「引数リスト」の意味がわかったはずです。
メソッドを定義するにはこちらの定型文を使います。
public static 戻り値 メソッド名(引数リスト){
メソッドが呼び出された時に実行される命令
}
ここの引数リストは仮引数を入れます。
次にメソッドを呼び出したいときの定型文がこちらです。
メソッド名(引数リスト);
ここの引数リストには実引数を入れます。
しかしここでもう一つの疑問が生じます。
それはなぜ引数リストなのか?
それは引数を複数設定できるからです。
次では引数を複数設定してみます。
引数を複数設定する
引数を2つ設定します。
public class Test {
public static void book(int a, int b){
System.out.print(“私は本を” + (a + b) + “冊持っています。”); //a + bの結果ともろもろの文章を表示させる。
}
public static void main(String[] args) {
book(1, 9); //bookメソッドを呼びしています。
}
}
これを実行すると
私は本を10冊持っています。
と実行されます。
ソースコードを見ると、
仮引数(int a, int b)でaとbという変数を設定しました。
そして実引数(1, 9)で1と9という値を設定しました。
aが1でbが9となります。
引数が複数になっても「,」で区切るだけで
基本変わりません。
まとめ
引数のことがわかりましたでしょうか?
初心者さんにわかりやすくと書いたつもりですが、
専門用語を多用してしまいました。
もしわからなかったら私のサイトで解説していますのでどうぞ参考にしてください。
もしこの記事がよかった!というあなたはTwitterのフォローと
当サイトのお気に入り登録をお願いします!