今回はクラスの宣言とクラスの実装について説明する
クラスの宣言
クラスの宣言を記述するファイルには拡張子に.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言語入門