最近スクリプト言語ばっかり使っていたので、Objective-C特有のキーワードがワケワカメ!
更にはObjective-C2.0になって新しいキーワードまで増えてしまって、ますます(@_@;)
と、いうわけで、覚え書き

まずは、ヘッダーファイル。拡張子はC/C++と同じく.h

	@interface “class”
	{
		“instance”
	}
	“[+class|-instance] method”
	@property “instance”
	@end

続いて本文。拡張子が.mなのが、慣れるまでキモチワルイ。

	@implementation “class”[ : “super”]
	@synthesize “instance”
	“methods”
	@end

こんな感じ。

ざっくり見渡してみると、インスタンス変数が「{}」の中に列挙されることで、クラス(定義)が「俺は構造体だよ」と、強く主張しているのがよくわかる。

まずはクラス定義、クラス宣言文が@imprementeationと思っておけば、まあ・・・
クラス継承でクラスを拡張する際は、「:」の後ろに継承したいクラスの名前を書く。この辺は接続記号が多少違う程度で他の言語と一緒。

続いてインスタンス変数宣言。
先にも書いたとおり、オブジェクト指向言語が、構造体とその構造特有の関数のラッピング/パッケージ化である以上、
クラス=データ構造体なのは理解して貰えると思います。
なので、Cのstruct宣言のように「{}」の中身にはそのクラスが保持する変数群を列挙するのは当たり前。と思っておけば、違和感も多少は少なくなる・・・かな?

続いて、行頭に「+」が来るメソッド(関数)宣言がクラスメソッド。
これはあるインスタンスオブジェクトに対してではなく、インスタンスに対するメッセージとして実行「されない」メソッドを表す。
コンストラクターやインスタンスの生成に使われるメソッドと思っておけばオッケーかな? 続いて、行頭に「-」が来るメソッド(関数)宣言がインスタンスメソッド。
これは実体を持つインスタンスに対するメッセージとして実行「される」メソッドを表す。

@propertyはObjective-C2.0で新しく登場したキーワードで、アクセッサーを自動生成してくれると思えばいい(ハズ)
先の「{}」内で宣言したクラスが持つインスタンスに対し、.hファイルで@propertyを、.mファイルで@synthsyzeを宣言しておくと、setterとgetterアクション生成を自動で行ってくれる。
なので、aaaというインスタンスを生成して、その値をクラスの利用者が読み書きしようと思ったら、

[instance set<メンバー名>:値];
val = [instance <メンバー名>];

を、定義しなくてもObjective-Cが、上記の動作を勝手に行ってくれる。
便利だね。