Objective-C 基本講座

クラス定義とインスタンスの使い方 

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
オブジェクトを定義したり運用したるするためのObjective-Cの文法を学習します。
講師:
10:57

字幕

このレッスンではクラスの定義法 オブジェクトの作成法 オブジェクトの操作法を学習します 出来事をシュミレーションするための クラスを具体的に定義してみましょう その日に起こった何らかの出来事を シュミレーションするといった少し抽象的な クラスを定義しそこから発生させて本を買った 出来事をシュミレーションするクラスと ジュースを飲んだ出来事を シュミレーションするクラスを作り出します 出来事クラスには出来事に関係する金額を情報 として持てるようにし本の出来事クラスでは 買った本の名前を 情報として持たせるようにします ジュースの出来事クラスでは 飲んだ本数を情報として持たせます まずクラスの定義はinterface 部と implementation 部の 2 つから構成されます interface キーワードから end キーワードまでの間に記述するのが interface 部で implementation キーワード からend キーワードまでの間に記述する のがimplementation 部です このように オブジェクティブCO のキーワードは 基本的に@マークから始まります interface 部は公開用の情報を 各部分でオブジェクトに働きかける際に 必要となります implimentation 部では その働きかけに対して どのように反応するかを定義します 関数で考えるなら関数宣言と 関数定義のような関係です どちらも最初のキーワードの後にクラス名を 続けて何のクラスのための定義かを示します interface 部ではクラス名の後ろに コロンをつけて派生元のクラス名を指定します ここで指定しているNSObject は 最も基本となるクラスです 新しく定義するクラスは このNSObject から派生させるか NSObject を祖先に持つクラスから 派生する必要があります もし作成するインスタンスに構造体で 言うところのメンバーを持たせたいなら 派生元クラス名に続けてブレスペアを用意し その中に変数宣言を書きます クラスではメンバーとは呼ばずに インスタンス変数と呼びます インスタンス変数は特に指定ない限り 派生クラスからも 利用できるようになっています ここでは出来事に関係する金額を ヒント型のアマウントとして持たせます インスタンス変数が特に必要なければ 書く必要はありません 後はメソッドと呼ばれるオブジェクトへの 働きかけの決まりを書きます 出来事オブジェクトでは 出来事をシュミレーションせよという 働きかけに対応することにします 名前をSimulate としました メソッドの最初のマイナスは このメソッドがインスタンス用であることを 示しています クラス定義からはクラスオブジェクトと インスタンスの2種類のオブジェクトが 作成されるのでその判別が必要なためです 通常メソッドと言えばインスタンス用メソッド を示しクラスオブジェクト用は クラスメソッドと呼びます クラスメソッドを書く場合は プラスを指定します その後に続くのは戻り値の型です 関数と違いメソッドでは 戻り値や引数の型の指定部は 型名をカッコで囲む規定になっています 戻り値の型の後はメソッド名が続きます そしてその後が引数ですが この部分は関数とかなり異なります 例えば関数では引数がない場合でも必ず カッコが必要でしたが メソッドは引数がないなら何もつけません interface 部では セミコロンをつけて完了とします ここでは例としてメソッドネームという名前の 戻り値を介さず 引数も受け取らない メソッドを宣言しました 下にあるシュミレートメソッドが まさにこの状態です 次に引数を1 つ受け取る場合は メソッド名に続けてコロンをつけます これが引数を受け取るという意味になります そしてその後には引数の型と引数名を続け メソッドの形式で記述します ここではファーストという名前の int 型の引数を定義しました 2 個目以降の引数もこれの繰り返しです 2 つ目のコロンの前は半角スペースやタブで 間をあけるだけです カンマを使わない点に注意してください 望むなら2 つ目以降の引数には ラベルをつけることができます ラベルについてはこの後のオブジェクトへの 働きかけの記述方法で改めて説明します 本の出来事特有の情報やジュースの出来事 特有の情報はプラスの派生で対応します 本の出来事ならイベントクラスから BookEvent クラスを派生させ インスタンス変数に 本の名前用のブックネームを用意します 同じようにジュースの出来事は イベントクラスから DrinkEvent クラスを派生させて インスタンス変数に 飲んだ本数のbottles を用意です 後はimplementation 部で メソッドの動作を定義します イベントクラスはコンソールに 何か出来事があったと出力させるようにし BookEvent クラスは 本を買ったとしています クラスの派生により派生元の機能が 受け継がれるのでBookEvent クラス もシュミレートメソッドが利用でき そのふるまいは イベントクラスと同じものになります 改めてメソッドを定義することで BookEvent クラス独自のふるまいを 実行させることが可能となります これをメソッドのオーバーライドと呼びます またこのような implementation部での定義を オーバーライドも含め実装と言います DrinkEvent の方は わざとメソッドをオーバーライドせず イベントクラスのシュミレートメソッドの ふるまいになるか確認してみます まずはこの定義でオブジェクトを作り そして働きかけてみましょう クラスのインスタンス作成は そのクラスのクラスオブジェクトに 依頼することは説明しました クラスオブジェクトに働きかけをするわけ ですがオブジェクティブC ではこれを メッセージを送ると表現し ブラケットで囲んで記述します イベントクラスのインスタンスの作成なら オブジェクトにはイベントクラスの クラスオブジェクトを指定します クラス名を書くことで クラスオブジェクトを指定したことになります メッセージはメソッド名と引数で構成します 引数がないならメソッド名のみです インスタンスの作成依頼は クラスメソッドのバロックメソッドを使います 戻り値の型はクラス名にアスタリスクをつけて 表現するのでポインターのようですが オブジェクトの場合はポイント数先に どのようなものがあるかは不透明なので 参照という言葉を使います 基本的にオブジェクトを 特定するだけのために使うものです また受け取った直後のイベントインスタンスは そのままでは使えません インスタンスに対しinit メッセージを 送り初期化させる必要があります そして初期化されたインスタンスを 改めて受け取りなおします 一般にこの2 つのステップは連続で行う 必要があるのでひとまとめに記述します Event BookEvent DrinkEvent のインスタンスを 1 つずつ作成してみました BookEvent DrinkEvent はイベントクラスから派生したので イベントクラスのインスタンスとしても 扱えるようになっています これもオブジェクト試行プログラミングの 特徴です それぞれのオブジェクトの シュミレートメソッドを呼び出す メッセージを送ってみましょう 引数がないので メソッド名を書いたらおしまいです これでメッセージとなります もしメソッドの引数があるなら 半角スペースやタブで間をあけて コロンから繰り返します また2番目以降の引数にラベルが ついていた場合はそのラベルも書きます それでは実際に3 つのクラスを作って 利用してみましょう Xcode の画面に切り替えます 新しいプロジェクトを作り OS10 のComand Line Tool Template を選び Laguage で Objective C を選びます 名前はonedayobjとします イベント 本 ジュースを定義して メイン関数で作成し メッセージを送ってみます ランするとコンソールに 別々のメッセージが出力されました DrinkEvent のオブジェクトは イベントオブジェクトと同じに 何か出来事があったになっています このレッスンではクラス定義法 オブジェクトの作成法 オブジェクトの操作法を学習しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。