クラスの定義
クラスの定義は、特定のファイルと構文を使用することにより、オブジェクトのクラスを仕様化する事です。クラスの定義は最低限、二つの部分から構成されています:パブリックインターフェイス、およびプライベート実装です。通常は、2つの別々のファイル、ヘッダーファイルと実装ファイルにインタフェースと実装を分割します。コードのパブリックおよびプライベートの部分を分離することにより、独立した実在としてクラスインターフェイスを保持できます。
通常は、クラスの名前後にインタフェースと実装ファイルの名前を付けます。それは他のソースファイルに含まれているので、インタフェースファイルの名前は、通常、ヘッダファイルの典型的な、.h 拡張子が付いています。実装ファイルの名前は、Objective-C のソースコードを含んでいることを示す、.m の拡張子が付いています。たとえば、MyClass というクラスは MyClass.h 内で宣言され、そして MyClass.m で定義されます。
インターフェース(Interface)
インターフェイスでは、いくつかのことを行います。
- クラスとそのスーパークラスに名前を付けます。
- クラスのインスタンス変数を指定します。
- クラスで使用できるメソッドと宣言されたプロパティ(宣言されたプロパティ を参照の事)を指定します。
また、あなたのクラスが適合するプロトコルの指定もできます。(プロトコル を参照の事)
インターフェイスファイルでは、最初に必要なフレームワークをインポートします。(これは、多くの場合、Cocoa/Cocoa.h となります。)クラス・インターフェイス自身の宣言するコンパイラ・ディレクティブの @interface で始め、ディレクティブの @end で終わります。
#import <Cocoa/Cocoa.h> @interface MyClass : SuperClass { int integerInstanceVariable; } + (void)aClassMethod; - (void)anInstanceMethod; @end
実装
インターフェイス内のクラスのメソッドを宣言する一方で、実装(Implemmentation)内に(つまり、それらを実装するためのコードを書く)これらのメソッドを定義します。
インターフェイスファイルでは、最初に必要なヘッダファイルをインポートします。(これは最低でもクラスのヘッダファイルに必要です。)コンパイラディレクティブ @ implementation でクラスの実装を開始し、ディレクティブ @end で終わります。
#import "MyClass.h" @implementation MyClass + (void)aClassMethod { printf("This is a class method\n"); } - (void)anInstanceMethod { printf("This is an instance method\n"); printf("The value of integerInstanceVariable is %d\n", integerInstanceVariable); } @end
前提条件の記事
(なし)
関連記事
既出の議論
クラスの定義
次の章
前の章