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 まぁ、JavaとRubyは相手がスクリプト言語なんで比べる対象が違うと思っていて、Objective-C なんかみているとJavaはコンパイラ言語の中では以外にシンプルなんじゃないかなーと思うね。