回答編集履歴

2

コード追記

2022/10/13 07:32

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,20 @@
1
1
  `name = name` は、引数の`name`に引数の`name`を代入するだけで、何もしないのと同じこと。
2
2
  引数の`name`とインスタンスの`name`が同じ名前で、ローカル変数である`name`が優先されます。
3
3
  名前が違えばどこの変数が使われるか明確になります。
4
+
5
+ ```java
6
+ class Dog {
7
+ String name; // インスタンス変数 name、初期値は null
8
+ Dog(String n) { // ローカル変数 n
9
+ name = n; // インスタンス変数 name に ローカル変数 n を代入
10
+ }
11
+ }
12
+ ```
13
+
14
+ ```java
15
+ class Dog {
16
+ String name; // インスタンス変数 name、初期値は null
17
+ Dog(String name) { // ローカル変数 name
18
+ name = name; // ローカル変数 name に ローカル変数 name を代入、インスタンス変数 name は変化なし
19
+ }
20
+ }

1

説明追記

2022/10/12 16:29

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1 +1,3 @@
1
1
  `name = name` は、引数の`name`に引数の`name`を代入するだけで、何もしないのと同じこと。
2
+ 引数の`name`とインスタンスの`name`が同じ名前で、ローカル変数である`name`が優先されます。
3
+ 名前が違えばどこの変数が使われるか明確になります。