Objective-Cの勘所3 クラスの扱い

今回はクラスの宣言とクラスの実装について説明する

クラスの宣言

クラスの宣言を記述するファイルには拡張子に.hを付ける。これはヘッダファイルと呼ばれる。

@interface クラス名 : スーパークラス名 <プロトコル> {
//クラスブロック内では変数の宣言を行う
//…何らかの変数宣言
}
//クラスブロック外ではメソッドの宣言を行う
//…何らかのメソッド宣言
@end

interfaceブロック内では変数の宣言を行うことができる。interfaceブロック外ではメソッドの宣言を行うことができる。@interfaceから@endまでがクラスの宣言にあたる。
プロトコルについてはこの記事の最後で説明する。

クラスの実装

クラスの実装を記述するファイルには拡張子に.mを付ける。これはメインファイルと呼ばれる。

@implementation クラス名
//ここで変数やメソッドの実装を行う
//…何らかの実装
@end

@implementationから@endまでがクラスの実装にあたる。

プロトコルとは何か

Javaのインターフェースによく似ているもの。プロトコルはメソッドの宣言だけで実装が無い為、実装は自分で用意する必要がある。Javaのインターフェースと同じで、プロトコルを使用しているにも関わらず、プロトコルで定義されている実装を行わない場合にはエラーとなる。

以下はヘッダファイル(.h)に記述している。

@protocol プロトコル名 - (void)メソッド名;
@end

@interface クラス名:スーパークラス名 <プロトコル名>
//メソッドの宣言 ...
@end

プロトコルとインターフェースは同じものである。プロトコルを取り込むことを採用と呼ぶ。プロトコルは以下のように複数採用することができる。

@interface クラス名:スーパークラス名 <プロトコル名1, プロトコル名2>
//メソッドの宣言 ...
@end

以上
 
 
参考
Objective-c言語入門