next up previous contents
Next: 11.4.2 自己参照変数self Up: 11.4 メソッド/秘伝内からの変数のアクセス Previous: 11.4 メソッド/秘伝内からの変数のアクセス

11.4.1 自己参照変数this

たとえば、あるクラスのあるメソッド中で、メンバ変数と同じ名前の変数を宣 言した場合、単に名前だけで変数を参照した場合、これは、メソッド本体で定 義した変数を参照することになり、メンバ変数の参照はできません。


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からのメンバ選択演算子は、privatepublicsatticいずれのタイプのメンバ変数に対しても使うことができます。

また、下記のようにthisを省略して、直接メンバ選択演算子を書くこと もできます。


class Square{

public x, y ; //左上座標
private width, height ;
:
method SomeCalculation () {
var width, height ;
:
->width = 10; // この2つの式はインスタンスメンバ変数
->height = 20; // width, heightに値を代入することになる
}
}


next up previous contents
Next: 11.4.2 自己参照変数self Up: 11.4 メソッド/秘伝内からの変数のアクセス Previous: 11.4 メソッド/秘伝内からの変数のアクセス
Tetsuo Ono
1998-11-05