Objective-C入門その4:クラス宣言をマスターする

サルでき.jp > 11.サルにもできるiPhoneアプリの作り方(旧アメブロ記事) > Objective-C入門その4:クラス宣言をマスターする

2009/09/01 09:00 投稿先 11.サルにもできるiPhoneアプリの作り方(旧アメブロ記事) 投稿者 カワサキ タカシ

~し間が空きましたが、今回はObjective-C入門、第4回目となります。

すっかり忘れてしまった人もいるかもしれませんので、前回の復習をしておきましょう。
Objective-C入門その3:「@」って何だ?

前回はHello worldの中でも大枠、

#import 関連プログラムの呼び出し
@interface ~ @end クラスの宣言
@implementation ~ @end クラスの実

この3つの存在を確認しました。
「@」は、「コンパイラディレクティブ」と言って、
「こっからObjective-Cだからよろしく!」ということをコンパイラに命令する言葉でしたね。

今回はもう少しクラスついて深堀りしてみましょう。

前回お話しした部分をすこーし薄く塗ってみました。

はい、どん!

Objective-C入門その4:クラス宣言をマスターする
<クリックして拡大>

@interfaceの後ろに何か書いてありますね。

@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate>

コレ、クラスの名前です。
ちょっと長いですね。

長いのにはワケがあります。

@interface クラス名:スーパークラス名 <プロトコル>

こんな感じで書いてるからです。
つまり実際のクラス名は「HelloWorldAppDelegate」となります。

スーパークラスはオブジェクト指向の見本のような考え方で、
文字通りスーパーなクラスです。

以上。

以上じゃない。

極限まで平たく言ってしまえば、
「虎の威を借る狐」の「虎」に該当します。

何を言っているかわからない?

ご説明しましょう。

まずアナタの作ったクラスを「狐」とします。

やりたいことは「子豚を脅かすこと」です。

ですがそれには手続きが必要です。
・子豚を見つけること
・逃げ道を軽く塞いでおくこと
・親豚がいないかを確認すること。
・ガー

ぜーんぶ自分でプログラミングしてもいいのですが、
面倒なら「虎」を呼んできて「ガー」してもらえば良いのです。

それがスーパークラスです。
親クラスとも言います。

スーパークラスを指定しておくことで、そのスーパークラスが持つ全ての機能が使えます。
虎の威、借り放題です。
これを、継承と言います。

なんとなく北斗神拳が浮かんだら私と同じ世代ということです。

場面によって虎を借りてくるのかライオンを借りてくるのか、
はたまたペンギンを借りてくるのかは自由です。

ここで出ている、NSObject
実はiPhone OSのObjective-Cを使ったフレームワークは、ほぼ全てこのクラスを親にしています。

長々と説明して来ましたが、とりあえずNSObject呼んどけ、というのが答えです。

<知りたがりのアナタのために>

NSObjectのNSは、「NEXTSTEP」の略です。

Mac OS XはNEXTSTEPというOSが元になって作られました。
Mac OS Xを元にして作られているiPhone OSにも残る名残というわけです。

<ここまで>

もうひとつのプロトコルは何でしょう?

これは、メソッドの宣言(プロトタイプ宣言)の集合を指しています。

さっぱりわかりませんね。

Objective-Cでは単一継承というルールがあります。

要は虎とライオンを同時に呼んできてはいけないというルールです。

でもどうしても呼びたくなったら、<カッコ>付けてプロトコルとして呼びます。
カンマで区切れば何個でも呼ぶことができます。

じゃぁ呼びたい放題かというと、プロトコルの場合、
メソッドの宣言だけで実装部分が無いので、「ちょい面倒」
という制限が付きます。
(メソッドの宣言については次回)

ここではNSObjectに加えて、UIApplicationDelegateというクラスも継承しようとしているわけです。

UIApplicationDelegateは、アプリの起動終了時に行われる固有の処理を担当するクラスです。
テンプレートから作ってもあらかじめ設定してありますので、お約束だと思っておきましょう。

まとめてみましょう。

@interface 狐:虎<ライオン>

「狐」クラスを宣言します。
「虎」スーパークラスから継承します。
「ライオン」プロトコルで、メソッドの宣言だけ継承します。

ぐっと身近になってきました!

この調子で、宣言シリーズを片っ端から理解していきましょう。

関連する記事:


Advertisement