かとじゅんの技術日誌

技術の話をするところ

JavaプログラマのためのObjective-C講座 その1

Objective-Cの学習を始めました。
「キモい、キモい」といっていたのですが、なんか慣れてくると「あー、見える見える」って感じです。
Javaだと普通のクラスも

class Person{
    private String name;
    private int old;
    public Person(String name, int old){
        this.name = name;
        this.old = old;
    }
// setter, getter省略
}

Objective-Cなら ほらこんなにキモい。
Person.h

// @interfaceはclassと思っていい
@interface Person{
    (NSString*) name;
    (int) old;
}
- @property (retain) NSString* name;
- @property int old;
- (id)initWithNameAndOld:(NSString*)name_ old:(int)old;
@end

Person.m

@implementation Person

// name, oldのsetter,getterを生成するオプション
@synthesize name, old;

// イニシャライザ。要はコンストラクタ
- (id)initWithNameAndOld:(NSString*)name old:(int)old {
    self->name = name;
    self->old = old;
    return self;
}
@end

メソッドのシグニチャがキモいですが、慣れです慣れ。。
プロパティという機能は、C#にもあるのですが、Objective-Cのものは高機能ですねー。Javaでも使いたいなー。
JavaよりRubyのがシンプルにかけますって言っている人いますが、Objective-CよりJavaのほうがシンプルにかけるよねw まぁ、JavaRubyは相手がスクリプト言語なんで比べる対象が違うと思っていて、Objective-C なんかみているとJavaコンパイラ言語の中では以外にシンプルなんじゃないかなーと思うね。