[OC学習ノート]対象

2410 ワード

ocはcをベースとしたオブジェクト向け言語であり,C++も,このノートでは両者を比較学習する.
次に、OCエンティティオブジェクトの宣言と実装を例に挙げます.
#import <Foundation/Foundation.h>

@interface Fraction : NSObject //     ,   C++    (.h)

-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenomiator: (int) d;

@end                                //      

@implementation Fraction //     ,   C++    (.cpp)
{
    int numerator;
    int denominator;
}

-(void) print
{
    NSLog(@"%i/%i", numerator, denominator);
}

-(void) setNumerator: (int) n
{
    numerator = n;
}

-(void) setDenomiator: (int) d
{
    denominator = d;
}

@end

int main(int argc, char* argv[])
{
    @autoreleasepool {
        Fraction *myFraction;

        myFraction = [Fraction alloc];
        myFraction = [myFraction init];

        [myFraction setNumerator: 1];
        [myFraction setDenomiator: 3];

        NSLog(@"The Value of MyFraction is:");
        [myFraction print];
    }

    return 0;

メソッドのマイナス記号(-)は、このメソッドがインスタンスメソッドであることを示し、プラス記号(+)はクラスメソッドであることを示します(c++のstaticメソッドのように推測されます).
ここですべてのものを1つのファイルに書くのは規範的ではありません.