インスタンス変数とメソッドパラメーターが同じ名前をもっているとき、thisキーワードを使うことでそれぞれを区別して変数にアクセスすることができる。
例:
internal class Blog {
private var title = “title1”;
public function setTitle (title) {
this.title = title;
}
}
上の例では、インスタンス変数のtitleがパラメーターのtitleと同じ名前になっている(インスタンス変数titleに、setTitle()の引数として与えられた値を代入)。そのため、(名前解決において優先度の高い)パラメーターのtitleが、(優先度の低い)インスタンス変数のtitleを隠蔽し、thisキーワード無しではインスタンス変数titleにアクセスできなくしている。同様に、ローカル変数もインスタンス変数とインスタンスメソッドを隠蔽する。
インスタンス変数、インスタンスメソッドとパラメーター、ローカル変数に同じ名前をつけるプログラマーも多いが、名前の衝突を避けるためには、同じ名前をつけない方が良い。
今日の進捗:415→420/4343