たとえば、あるクラスのあるメソッド中で、メンバ変数と同じ名前の変数を宣 言した場合、単に名前だけで変数を参照した場合、これは、メソッド本体で定 義した変数を参照することになり、メンバ変数の参照はできません。
class Square{
public x, y ; //左上座標
private width, height ;
:
method SomeCalculation () {
var width, height ;
:
width = 10; // この2つの式はメソッドSomeCalculationのローカル
height = 20 // 変数width, heightに値を代入することになる
}
}
このような場合、このメソッドを呼び出した時のインスタンス自体を示すため の予約語thisを使って、下記のようにしてメンバ変数をアクセスするこ とができます。
class Square{
public x, y ; //左上座標
private width, height ;
:
method SomeCalculation () {
var width, height ;
:
this->width = 10; // この2つの式はインスタンスメンバ変数
this->height = 20; // width, heightに値を代入することになる
}
}
thisからのメンバ選択演算子は、private、public、satticいずれのタイプのメンバ変数に対しても使うことができます。
また、下記のようにthisを省略して、直接メンバ選択演算子を書くこと もできます。
class Square{
public x, y ; //左上座標
private width, height ;
:
method SomeCalculation () {
var width, height ;
:
->width = 10; // この2つの式はインスタンスメンバ変数
->height = 20; // width, heightに値を代入することになる
}
}