インスタンス変数、プロパティ、メソッド
普段はもっぱらperlだったせいもあり、なかなかobjective-cの文法がアタマに入ってこないので整理してみる。
オブジェクト指向
- 「もの」として識別できる
- 状態=属性を持つ
- 他のオブジェクトにメッセージを送ることができる
- メッセージを具体的にどう処理するかはオブジェクトが知っている(隠蔽されている)
インスタンス変数
オブジェクトの状態を表現する。クラス内からは自由にアクセスできるが、外からは隠蔽されアクセスができない。ヘッダファイルで宣言する。
メッセージ
オブジェクトに対する指示。実装の観点からはメソッドと呼ばれる。
@interface Person : NSObject { NSString *name; } - (NSString *) name; - (void) setName: (NSString *) str; @end
@implementation Person - (NSString *) name { return name; } - (void) setName:(NSString *) str { name = str; } @end
プロパティ
外部からアクセスできるオブジェクトの属性。インスタンス変数 + メソッドでも実装できるが、宣言プロパティ(declared property)機能を使うとよい。
@interface Person : NSObject { NSString *name; } @property NSString *name; @end
@implementation Person @synthesize name; @end