コース: Objective-C 基本講座

オブジェクト指向へ

このレッスンではオブジェクティブC による オブジェクティブ試行プログラミングが どういったものかを紹介します オブジェクト試行プログラミングは オブジェクトとオブジェクトへの働きかけ オブジェクトからの反応で構成されます 例えばオブジェクトに対して叫べという 働きかけを行うとオブジェクトが犬だったなら 「ワン」と鳴き猫だったなら「ニャー」と鳴く ようにプログラミングすることを意味します オブジェクティブC の祖先である C 言語のみの文法でも オブジェクト試行プログラミングは可能ですが 記憶区画をオブジェクトとして表現するために 構造体 関数ポインター 共用体などを駆使する必要があります この点をもう少し改善するために拡張された のがオブジェクティブC 言語です オブジェクティブC では 最初からオブジェクトを作ることを限定に クラスという概念を導入しています クラス定義から用意されるオブジェクトも メモリ上の記憶区画として 存在する点は同じですが 作成方法や管理方法にはに違いがあります まずこちらはヒープ上にしか作れず スタック上には作れません 記憶区画がどんな構造になっているかも 基本的には未公開です そのためmalloc 関数で作ることも できずクラスごとに用意されている 作成用オブジェクトに 作成を依頼するようになっています 作成用オブジェクトによって メモリー上に確保された区画を一般に そのクラスのインスタンスと呼びます インスタンスはメモリーが許す限り いくらでも作れます これに対し作成用オブジェクトを クラスオブジェクトと呼びます クラスオブジェクトはクラスごとに1 つだけ 自動手的に作成されます クラスの定義はこのように2 種類の オブジェクトを作り出す設計図となっています またクラスの派生という概念もあり既存の クラス定義から新しいクラス定義を 作り出せるようにもなっています 例えばまずその日に起こった何らかの 出来事をシュミレーションするといった 少し抽象的なクラスを最初に定義しておき そこから派生させて本を買った出来事を シュミレーションするクラスや ジュースを飲んだ出来事を シュミレーションするクラスを 作り出したりします こうすることで本の出来事クラスや ジュースの出来事クラスは出来事クラスが持つ 特性を受け継ぐことになり出来事クラスに シュミレーションをする機能があるなら その機能は 派生クラスにもそのまま受け継がれます その上で各クラス独自の機能や情報を 追加することでクラスの差別化を行います そしてクラスオブジェクトはクラスごとに 用意されるので作成されるインスタンスも 各クラスの定義に従ったものになります このレッスンではオブジェクティブC による オブジェクト試行プログラミングが どういったものかを紹介しました

目次