2011年11月10日木曜日

あるインスタンスから他のインスタンス変数にアクセスする方法

例)obj1のval1に他のインスタンスからアクセスするには
obj1->val1
という書き方をする。
同じクラス内のインスタンスのみ利用可能。
使う場合にもクラス名でキャストしておく必要がある。

-(id)makerandnum:(mknum *)num
{
num1 = num->num2;
//mknumクラスの型にキャストされたインスタンス変数numにアクセス
}
☆インスタンス変数の使える範囲の指定
num->num1のように他のインスタンス変数を利用できるが、インスタンス変数へのアクセスできる
範囲を制限することができる。どこからでも変更、読み込みができたり、クラス内でしか読めないようにできたり。

@private
宣言したクラス内だけ利用可能
サブクラスからも使えない。
@protected
宣言したクラスとサブクラスから利用可能
何も指定しないと@protectedが適用される
@public
どこからでも利用可能
書き方
@interface num1 : num
{
id inclementvall;
@public
int decval;
@private
double outval;
int testval1;
@protected
int testval;
}
@end
というように種類ごとに定義する。

No response to “あるインスタンスから他のインスタンス変数にアクセスする方法”

Leave a Reply