ルイスとマディが言ったことに同上。これのいくつかは、例で最もよく説明されています。Circle クラス オブジェクトを考えてみましょう。
.h ファイルは次のとおりです。
// Circle.h
#import <Foundation/Foundation.h>
@interface Circle : NSObject
{
double radius;
double pi;
}
@property double radius, pi;
-(double) area;
-(double) diameter;
-(double) circumference;
@end
そして、実装ファイル (Luis が指摘するように、インスタンス メソッドを定義したことに注意してください):
// Circle.m
#import "Circle.h"
@implementation Circle
@synthesize radius, pi;
// Initialize with default radius:
- (instancetype)init {
self = [super init];
if (self) {
pi = 3.14159;
NSLog(@"Circle created.");
}
return self;
}
-(double) area {
return pi*radius*radius;
}
-(double) diameter {
return 2*radius;
}
-(double) circumference {
return 2*pi*radius;
}
@end
main で circle オブジェクトを作成し、メッセージを送信して、関連するいくつかの数量を返します。
// main.m
#import <Foundation/Foundation.h>
#import "Circle.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Circle *aCircle = [[Circle alloc] init];
[aCircle setRadius:2];
NSLog(@"Area = %f",[aCircle area]);
NSLog(@"Circumference = %f",[aCircle circumference]);
NSLog(@"Diameter = %f",[aCircle diameter]);
NSLog(@"Check pi = %f",[aCircle pi]);
}
return 0;
}
この例から、オブジェクトの作成時にpiの値が設定され、オブジェクトの一部として保存され、他の計算に使用できることがわかります。
注: 実際にはこの方法でpiを定義したくないでしょう。これは要点を説明するための単純な例です。
また、オブジェクトの作成後にオブジェクトの他の内部値を設定できたことにも注意してください。このデータは、投稿で指摘されている条件に従って、その時点から利用可能になります。
これはより理にかなっていますか?このコードを実行して、慣れるまでアイデアを試してみてください。
EDIT : Andrew Madsen の提案で、面積、直径、円周のアクセサ メソッドを更新しました。これらに「get」を前に付けないでください