teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2020/03/07 13:04

投稿

t.z
t.z

スコア21

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  仮引数と実引数にわけて質問します。
3
3
  よろしくお願いします。
4
4
 
5
+ ※さいごに追記あり
6
+
5
7
  ## 1. 仮引数
6
8
  たとえば`Color(int r, int g, int b)`と`Color(int r, int g, int b, int a)`の両方ある理由です。引数で同時に`(View view, 仮引数)`のように宣言することもできると思いますが、引数の中のそれが何なのかはどのように判別されているのですか。
7
9
 
@@ -11,8 +13,32 @@
11
13
  [View  |  Android デベロッパー  |  Android Developers](https://developer.android.com/reference/android/view/View)
12
14
 
13
15
  ## 2. 実引数(インスタンス化に関して?)
14
- ```変数.メソッド名(new インターフェイス名(){public void メソッド名(仮引数){コンストラクタ;メソッド名(実引数);メソッド名(実引数);}});```というふうに、変数.メソッド名のあとの引数が複雑なものを見かけます。
16
+ `変数.メソッド名(new インターフェイス名(){public void メソッド名(仮引数){コンストラクタ;メソッド名(実引数);メソッド名(実引数);}});`というふうに、変数.メソッド名のあとの引数が複雑なものを見かけます。
15
17
 
16
18
  引数の中でこのように複雑に続けられる理由を知りたい、どのようなルールと照らし合わせればこの型が理解できるのかのヒントをいただきたい、というのが質問です。言い換えれば、なぜnew インターフェイス名()のあとに長く書いたものを引数の中に入れられるのかという質問でもあります。
17
19
 
18
- 私の中で()の中に入れられるものは単純な感覚でしか理解しておらず、上記のように仮引数と実引数がある、自分の作った変数をわたせる、定数を書き込める...等といった認識です。この認識では引数の中に複雑な記述が入り込める理由が不明なのです。
20
+ 私の中で()の中に入れられるものは単純な感覚でしか理解しておらず、上記のように仮引数と実引数がある、自分の作った変数をわたせる、定数を書き込める...等といった認識です。この認識では引数の中に複雑な記述が入り込める理由が不明なのです。
21
+
22
+ ## 追記
23
+
24
+ ##### 1. 仮引数
25
+ `(View view, 仮引数)`の具体例は、
26
+
27
+ ```Java
28
+ private OnItemClickListener messageClickedHandler = new OnItemClickListener() {
29
+ public void onItemClick(AdapterView parent, View v, int position, long id)
30
+ {
31
+ Toast.makeText(context,"You've got an event",Toast.LENGTH_SHORT).show();
32
+ }
33
+ };
34
+ ```
35
+
36
+ です。
37
+
38
+ [AdapterView#HandlingUserSelections](https://developer.android.com/guide/topics/ui/binding?hl=ja#HandlingUserSelections)
39
+
40
+ 引数が`AdapterView parent, View v, int position, long id`となっているのです。
41
+
42
+ ##### 2. 実引数(インスタンス化に関して?)
43
+
44
+ おそらく「匿名クラス」の話だということがわかりました。なるほどそういうものがあるのかということがわかったので自分で調べます。なにか、調べてもわかりにくい部分などあれば回答よろしくお願いします。