開発ツールXcode/iOS SDKを使ってiPhone/iPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。「Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた」という初心者を対象にしています。今回は、オブジェクト指向に必要な4つの特性や、カプセル化、継承、ポリモーフィズム、オーバーライドなどの使い方について。
前回の記事「人生と同じ? プログラムの式と演算子、制御文を学ぶ」ではプログラムの式や演算子、そして制御文について学びました。前回から時間が経ち、iOSはバージョン7になり、Xcodeもバージョン5になりました。本連載「iOS SDKで始めるObjective-C入門」は、Objective-Cの文法の解説をメインにしているので、あまり影響を受けませんが、最新の開発環境にしたい方は記事「Android化が進むiOS 7の新機能と開発環境Xcode 5」の「開発環境『Xcode 5』と開発環境構築」などを参照してください。
今回は、Objective-Cの基本の最後としてオブジェクト指向プログラミングについて解説します。
なお本記事では、オブジェクト指向そのものに関する説明に関しては省略させていただきます。オブジェクト指向に関しては、下記記事で分かりやすく解説されているので、そちらをご覧ください。古い記事ですが、今も昔も基本的な考え方は変わっていません。また、本記事では適宜以下の記事を参考に話を進めていきます。
オブジェクト指向と聞くと何やら難しいイメージがありますが、恐れることはありません。実は、皆さんはすでにオブジェクト指向プログラミングを実践しています。
前回記事を思い出してみましょう。「HelloWorldApp」の「ViewController.m」でプログラムの確認を行いましたね。これらの作業を言い換えると、「ViewControllerクラスの- (void)viewDidLoadメソッドに確認用のプログラムを記述する」となります。
例えば、前回紹介した以下のコードを見てみましょう。
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; int result; result = 1 + 1; NSLog(@"1 + 1 = %d", result); // コンソールに「1+1 = 2」が表示される } @end
この場合、「ViewControllerクラスの- (void)viewDidLoadメソッドに、1+1の演算結果をコンソールに表示する処理を記述」していたことになります。
このように、これまで皆さんはオブジェクト指向プログラミングを実践していたのです。
また、HelloWorldAppをXcodeで開き、「ナビゲータ」エリアの「プロジェクトナビゲータ」を確認してみましょう。すると、「ViewController.h」「ViewController.m」の他に「AppDelegate.h」「AppDelegate.m」があることが分かります。これらはそれぞれViewControllerクラスとAppDelegateクラスを定義しているファイルです。
このことから分かるように、iOSアプリ開発では、そもそもオブジェクト指向プログラミングを前提としていることが分かります。それでは、Objective-Cではどのようにオブジェクト指向プログラミングを表現するのでしょうか。
記事「オブジェクトに必要な4つの特性とは?」では、オブジェクトに必要な4つの特性として「属性」「操作」「関係」「アイデンティティ」が挙げられています。そして、「クラス」とは同じ特性を持つオブジェクトの集合に名前を付けたものであり、クラスに属するオブジェクトを「インスタンス」と呼ぶとあります。
この記事では、人間を例に分かりやすく解説されています。この人間クラス(Personクラス)をObjective-Cで表現してみましょう。
ここでは、引き続きHelloWorldAppプロジェクトを用いて解説します。
クラスを作るには、「ナビゲータ」エリアの「プロジェクトナビゲータ」で操作を行います。「プロジェクトナビゲータ」にある「HelloWorldApp」グループを右クリックしてメニューを表示し、[New File…]をクリックします。
すると、以下のウィンドウが表示されるので、[iOS]→[Cocoa Touch]→[Objective-C class]を選択し、[Next]ボタンをクリックします。
すると、以下のウィンドウが表示されるので、[Class]に「Person」、[Subclass of]に「NSObject」と入力します。[Subclass of]に入力したNSObjectについては後で説明するので、ここでは気にせず言われた通りに進めてください。入力したら、[Next]ボタンをクリックします。
すると、作成するファイルの保存場所を聞かれるので、下記のように保存場所を選択し、[Create]ボタンをクリックします。
「プロジェクトナビゲータ」に「Person.h」と「Person.m」が作られていれば、Personクラスの作成は成功です。
Copyright © ITmedia, Inc. All Rights Reserved.