iPhoneアプリ開発の初歩 – Objective-Cでクラスを作る.
cocos2dでゲームを作るにしてもObjective-Cの理解は必要です。今回はまず、基本中の基本。クラスの作り方を解説します。
クラスの構成
Objective-CもCやC++と同じように宣言部と実装部があります。これらはたいてい2つのファイルに分けて作られ、宣言部はヘッダーファイル(.h)、実装部は実装ファイル(.m)です。これら2つのファイルからクラスは構成されます。
2つのファイルはそれぞれ役割が違います。宣言部はObjective-Cでインターフェース部とも呼ばれ、クラスの概要を示す部分です。インターフェースの文字通りクラスの見た目です。そのクラスがどのような特徴を持っているのか、どのような仕事ができるのか、わかるようになっています。一方、実装部は実際の処理を書く部分です。
実際のプログラムでは以下の様な構造で書かれます。例として’sampleClass’を新しいクラス名とし、これはNSObjectをスーパークラスに持つと仮定します。
/*.hファイル*/ /*インタフェース部*/ @interface sampleClass : NSObject { /*インスタンス変数などを宣言*/ } /*メソッドを宣言*/ @end /*.mファイル*/ /*実装部*/ @implementation smapleClass /*実際の処理内容を記述*/ @end
プログラムによっては前後にいろいろ記述されますが、基本的にはこれだけでクラスはできます。’sampleClass’がの横に書かれているのがスーパークラス(親クラスで)、これは継承関係を表します。すなわち、sampleClassはNSObjectの機能や特徴を継承し、使う事ができるということです。
Objective-Cでは必ずクラスは何かのクラスを継承しなければなりません。NSObjectはObjective-Cでルートとなっているクラスで、このクラスを拡張することで、様々なクラスが作られています。
インスタンス変数とは
インスタンス変数とはいわゆる属性と呼ばれる部分で、そのクラス独自で保有する変数です。
例えば、「人間」を表すクラスがあったとすると、「性別」、「名前」、「年齢」といったものがインスタンス変数といえます。また、継承に関していえば「哺乳類」が「人間」のスーパークラスに当たると行ってもいいでしょう。インスタンス変数と継承に関しては後日詳しく解説します。
インタフェース部でのメソッド宣言
メソッド宣言とは、このメソッドが他のクラスから見える(他のクラスが使える)ように定義しておくことです。インタフェース部に記述することで、ヘッダーファイルを読み込むだけで、他のクラスは、このクラスがどのような機能があるのかわかるようになります。こちらも詳しくは後述します。
実装部
実装部は先程述べた通り、実際のプログラムの処理を@implementationから@endの間に書いていきます。
このようにしてクラスは構成されます。
cocos2dでのクラスの追加
一応cocos2dアプリ開発について書いているので、cocosでのクラスの追加の方法を書いておきます。
File→New→Fileで次のウィンドウが開きます。
左のサイドバーから’cocos2d’テンプレートを選び、CCNodeクラスを選択します。
次の画面で継承するスーパークラスを選択します。
スプライトの機能を持ったクラスを作りたいならCCSprite、レイヤーとして使うのならCCLayerなど、作りたいクラスの特徴を考えて選択します。たいていCCNodeかCCLayer、CCSpriteです。
最後にクラスの名前と保存場所を決めます。
これで新しいクラスを作ることができました。
次回はメソッドの書き方とメッセージです。
One Comment
Pingbacks