連載
» 2014年03月17日 18時00分 UPDATE

iOS SDKで始めるObjective-C入門(6):iOSアプリ開発初心者のためのオブジェクト指向の基本 (1/4)

開発ツールXcode/iOS SDKを使ってiPhone/iPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。「Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた」という初心者を対象にしています。今回は、オブジェクト指向に必要な4つの特性や、カプセル化、継承、ポリモーフィズム、オーバーライドなどの使い方について。

[平井祐樹,クラスメソッド]

Objective-Cは、その名の通りオブジェクト指向なC言語

 前回の記事「人生と同じ? プログラムの式と演算子、制御文を学ぶ」ではプログラムの式や演算子、そして制御文について学びました。前回から時間が経ち、iOSはバージョン7になり、Xcodeもバージョン5になりました。本連載「iOS SDKで始めるObjective-C入門」は、Objective-Cの文法の解説をメインにしているので、あまり影響を受けませんが、最新の開発環境にしたい方は記事「Android化が進むiOS 7の新機能と開発環境Xcode 5」の「開発環境『Xcode 5』と開発環境構築」などを参照してください。

 今回は、Objective-Cの基本の最後としてオブジェクト指向プログラミングについて解説します。

 なお本記事では、オブジェクト指向そのものに関する説明に関しては省略させていただきます。オブジェクト指向に関しては、下記記事で分かりやすく解説されているので、そちらをご覧ください。古い記事ですが、今も昔も基本的な考え方は変わっていません。また、本記事では適宜以下の記事を参考に話を進めていきます。

ios_objc6_01.jpg 自分を取り巻くオブジェクト(記事オブジェクト指向の考え方)より引用

iOSアプリ開発とオブジェクト指向プログラミング

 オブジェクト指向と聞くと何やら難しいイメージがありますが、恐れることはありません。実は、皆さんはすでにオブジェクト指向プログラミングを実践しています。

 前回記事を思い出してみましょう。「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_objc6_02.jpg

 このことから分かるように、iOSアプリ開発では、そもそもオブジェクト指向プログラミングを前提としていることが分かります。それでは、Objective-Cではどのようにオブジェクト指向プログラミングを表現するのでしょうか。

Objective-Cでオブジェクトに必要な4つの特性を表現してみよう

 記事「オブジェクトに必要な4つの特性とは?」では、オブジェクトに必要な4つの特性として「属性」「操作」「関係」「アイデンティティ」が挙げられています。そして、「クラス」とは同じ特性を持つオブジェクトの集合に名前を付けたものであり、クラスに属するオブジェクトを「インスタンス」と呼ぶとあります。

ios_objc6_03.jpg クラスとインスタンスの例(記事「オブジェクトに必要な4つの特性とは?」より引用)

 この記事では、人間を例に分かりやすく解説されています。この人間クラス(Personクラス)をObjective-Cで表現してみましょう。

 ここでは、引き続きHelloWorldAppプロジェクトを用いて解説します。

Xcodeでクラスを作ってみよう

 クラスを作るには、「ナビゲータ」エリアの「プロジェクトナビゲータ」で操作を行います。「プロジェクトナビゲータ」にある「HelloWorldApp」グループを右クリックしてメニューを表示し、[New File…]をクリックします。

ios_objc6_04.jpg

 すると、以下のウィンドウが表示されるので、[iOS]→[Cocoa Touch]→[Objective-C class]を選択し、[Next]ボタンをクリックします。

ios_objc6_05.jpg

 すると、以下のウィンドウが表示されるので、[Class]に「Person」、[Subclass of]に「NSObject」と入力します。[Subclass of]に入力したNSObjectについては後で説明するので、ここでは気にせず言われた通りに進めてください。入力したら、[Next]ボタンをクリックします。

ios_objc6_06.jpg

 すると、作成するファイルの保存場所を聞かれるので、下記のように保存場所を選択し、[Create]ボタンをクリックします。

ios_objc6_07.jpg

 「プロジェクトナビゲータ」に「Person.h」と「Person.m」が作られていれば、Personクラスの作成は成功です。

ios_objc6_08.jpg
       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。