Objective-Cは、Cに「
オブジェクト指向」の機能を追加したもの、と説明しました。では、オブジェクト指向とはどういうものでしょうか。
オブジェクト指向は、「
オブジェクト」としてプログラムを扱うための仕組みのことです。オブジェクトというのは、前回触れたように「さまざまな機能やデータをひとかたまりにして扱える何か」でした。
では、
Objective-Cは、このオブジェクトをどのようにして利用するのでしょうか。それは「
クラス」と呼ばれるものとして作成をして利用するのです。
クラスというのは、
構造体を更に強力にしたようなものです。
構造体では、中にさまざまな値を保管することができました。はじめに構造体の定義を用意しておけば、必要に応じていくつでも構造体を作り変数に設定して利用できました。
この構造体に、更に「
関数」を保管できるように下のが「
クラス」です。つまり、クラスは「
データと処理をひとまとめにできるもの」なのです。構造体と同様、あらかじめクラスの定義を用意しておき、変数にそのクラスの値を設定することで、その中にある値を利用したり、処理を呼び出して何かを行わせたりすることができるようになるのです。
Objective-Cのクラスは、以下のような形で定義されます。
Objective-Cでは、クラスを作るときには、ヘッダー情報となる部分と、実際に実行する処理を記述する実装部分とを分けて作成することができるようになっています。
※ヘッダー部分@interface クラス名 : NSObject {
……ここに保管する変数などを書く……
}
……ここに用意する処理を書く……
@end
※実装部分@implementation クラス名
……ここに具体的な内容を書く……
@end
ヘッダー部分は、
@interfaceというものの後にクラス名を記述します。本来はこれだけでいいのですが、実際にはクラス名の後に「
: NSObject」というものが付けられます。これは「
継承」という機能を利用するもので、これにより「
NSObject」というクラスを受け継いで新しいクラスが作成されます。
この「継承」については改めて触れるので、今のところは「クラス名の後に
: NSObjectと書いて定義すればいい」とだけ覚えておきましょう。
このヘッダー部分では、クラス名の後の
{}内と、それ以降の
@endまでの間に、使用する変数と処理を記述していきます。クラスでは、そのクラスから作られたオブジェクト内にデータを保管しておくのに「
インスタンス変数」というものが、また何かの処理をするのに「
メソッド」というものが、それぞれ用意されます。この2つのものを定義するのが、クラスを作成するということになるのです。
続いて
実装部分を見てみましょう。実装部では、
@implementationというものの後にクラス名を記述します。そして、そこから
@endまでの間に、メソッドの具体的な内容を書いていきます。この2つを作成すれば、クラスは完成です。とりあえず、この基本的な形をざっと頭に入れておいてください。