3
Help us understand the problem. What are the problem?

posted at

updated at

[Java]引数とかパラメータとか

https://qiita.com/hp_kj/items/789a7fb7e922745f8bd9#comment-f22f811bbe75340a3f1b
コメント欄にてご指摘いただいたので、仮引数、実引数に関して調べてみました。ありがとうございました!

引数なんて初歩で習ったし。余裕、、とか思ってました。
例えば、

public static void main(String[]args){
  int x = 10;
  int y = 20;
  System.out.println(add(x,y));
}

public static int add(int x,int y){
   return x + y;
}

上記だと自分は理解でできたんです。
add関数に
xの10
yの20が入るんだと。
結果、30が出力されるのだと。

けど、こうなると分からなくなっていました。

public static void main(String[]args){
  int x = 10;
  int y = 20;
  System.out.println(add(x,y));
}

public static int add(int a,int b){
   return a + b;
}

いやいやaとbじゃないよ、add関数に入れたいのはxとyだと。

なので関数をudemyで勉強しました。

結果は、関数の引数はただの入り口である。
というのが結論でした。

例を書きます。

public static void main(String[]args){
  int x = 10;
  int y = 20;
  System.out.println(add(x,y));
}

public static int add(int a,int b){
   return a + b;
}

まずこのコードです。分解します。
した半分です。

int add(int a,int b){
   return a + b;
}

自分の文章力がなさ過ぎます。更に分解します。

int add(int a){
   return a;
}

これで考えます。

このadd関数はint型を引数に使ってくれたらaという名前で使います。
!ここが大事です。

:o: int型を引数に使ってくれたらaという名前で使う。

:x: aという名前のint型のみを引数に使う。

add関数の中ではaという名前で使います。
という意味のint aなんです。
なのでたとえば、

public static void main(String[]args){
  int x = 10;
  int cccc = 20;
  System.out.println(add(x,cccc));
}

public static int add(int aaaaaaa,int bbbbbbb){
   return aaaaaaa + bbbbbbb;
}

これでもいいんです。
main関数では、add(x,cccc)となっていますが、

int型を引数に使ってくれたらaaaaaaaという名前で使う。

なので、xだろうが、yだろうが,ccccだろうが、int型を使ってくれさえすれば返してくれるんです。

途中からadd関数ですらなくなったりしましたが、よんでくださりありがとうございました。
書いていて思いました。動画って伝えやすいんだな。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
3
Help us understand the problem. What are the problem?