質問: 学習サイトprogateのコンストラクタの項目で以下のようなコードがありました 内容は単純にコンストラクタの機能を学習するためのものです class Person { public String name; // コンストラクタがString型の引数を受け取るようにしてください Person(String name) { System.out.println("インスタンスが生成されました"); // インスタンスフィールドnameに値をセットしてください this.name=name; } this.name=name;のところが分かりません。同じnameを用いているのですが、 最初にpersonクラスの属性として作ったpublic String nameのnameと、 コンストラクタの引数のString nameはまったくの別物なのでしょうか? 別物ならば、別の引数を宣言したほうが分かりやすいと思うのですが、こういった習慣というか理由があるのでしょうか?
回答: 質問主です。「内側と外側」と説明を受けて非常にはっきりしました。 フィールドの内側で使われていたnameがthis.nameに入って、クラスから外のクラスに行くイメージがもてました。 ありがとうございます。