回答編集履歴
2
追加
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
※以下の方法を行っても、x=5にはなりません。それはクラスBの保存の問題とは別の問題になります。
|
1
|
+
※以下の方法を行っても、x=5にはなりません。それはクラスBの保存の問題とは別の問題になります。(最後に補足しました)
|
2
2
|
|
3
3
|
|
4
4
|
`B b;`
|
@@ -82,4 +82,10 @@
|
|
82
82
|
public static void main(String args[]) {
|
83
83
|
System.out.println(a.A_Method(b,x));
|
84
84
|
}
|
85
|
-
```
|
85
|
+
```
|
86
|
+
|
87
|
+
---
|
88
|
+
`x = 5`にならないのは、`x+=2`を行っている場所での`x`とは、
|
89
|
+
`B1_Method(int x)`という風に定義された仮引数なので、そのメソッドの内部でしか有効ではないからです。
|
90
|
+
メソッドの中で`3+2`は確かに行われますが、メソッドの終了と共にその結果はそのまま消えてなくなります。
|
91
|
+
それを外部に伝えたい場合は、消えない場所の変数に保存するか、返り値等で伝える必要があります。
|
1
追加
answer
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
※以下の方法を行っても、x=5にはなりません。それはクラスBの保存の問題とは別の問題になります。
|
2
|
+
|
3
|
+
|
1
4
|
`B b;`
|
2
5
|
これだけでは、クラスBを入れることのできる箱(変数)を用意したにすぎません。
|
3
6
|
この中身は空っぽで、クラスBの本体、インスタンスは入っていません。
|