Javaのみに関わらずプログラム全般の読み方のとても重要な点について説明します。
義務教育で数学を得意とした方が最初に陥りやすい等号式の解釈の違いです。
xとyの値を求めよ
x+2y = 3
2x+5y = 5
最後に実行されるyの値を求めよ
int x = 1; ・・・・・(1
int y = 2; ・・・・・(2
x = x + y + 1; ・・・(3
y = x + 1; ・・・・・(4
上記「(4」のyの値答えはもうお分かりだと思いますが、値が「5」になります。
オブジェクト指向言語Javaの考え方も一緒です。
Integer x = new Integer(1);
Integer y = new Integer(2);
x = new Integer(x.intValue() + y.intValue() + 1);
y = new Integer(x.intValue() + 1);
new クラス
の代入によって違う入れ物になっているのです。 インスタンス.メソッド(値)
の場合には、左(インスタンス)から右(メソッド)に読みます。このプログラムの原理原則の読み方を一部ですがずっと訴えかけていた芸能人がいました。
YouTubeよりムーディー勝山の右から来たものを左へ受け流すの歌です。
この曲に「上から下へ読み流す」と「受け流す」を「格納する」とすれば完全にプログラムの原理原則の曲ですね。