libro
www.tuyano.com
初心者のためのObjective-Cプログラミング入門

Objective-Cのプロジェクトを動かそう! (2/5)

作成:2011-02-06 15:58
更新:2011-02-06 15:58

■CからObjective-Cへ!

では、Objective-Cについての話を始めましょう。そもそもObjective-Cとは、どういう言語なのでしょうか。先にObjective-Cは「C言語のスーパーセット」だ、といいました。では、一体どういう機能が拡張されているのでしょうか。

それは、「オブジェクト指向」に関する機能です。オブジェクト指向というのは、文字通り「オブジェクト」を扱うための仕組みのことです。更に「オブジェクト』というのはどういうものかというと、「ある事柄に関して、それが必要なデータと処理をすべてひとまとめにして、独立して扱えるようにしたもの」といってよいでしょう。

例えば、GUIアプリケーションでは、ウインドウとかメニューとかいったものが登場しますが、これらに必要な機能をずらっとすべて関数とグローバル変数で用意した場合、どういうことになるか想像してみましょう。GUIといってもさまざまなものがあります。それらを操作するための機能を全て1つ1つ関数にしたら、おそらく数千もの関数がずらりと並ぶことになるでしょう。

また、その状態をすべてグローバル変数などで管理する場合、果たしてどこにどの値が格納されているのか探すだけでも大変です。更には間違って関係ない値を変更してしまうようなトラブルも続出するでしょう。

そこで、例えば「ウインドウに関するすべてのものは、この中にまとめておく」というような「何か」を作るわけです。ウインドウを作ったり操作したりする機能、ウインドウの状態を示す各種の値、そうしたものをまとめて扱える「何か」があれば、関数の名前を探し求めたり、必要なウインドウの設定を保管した変数を探したりすることもなくなります。その「何か」の中にある関数を呼び出し、その「何か」の中に保管されいてる変数を変更すれば、ウインドウを操作できるのですから。――この「何か」が「オブジェクト」と呼ばれるものなのです。

このオブジェクトの扱い方には、さまざまな考え方があります。主に文法上の扱い方を中心にして考えれば、C言語にそのための機能を追加した「C++」というものが有名です。このC++流の扱い方は、Javaなど多くのプログラミング言語で使われています。このため、オブジェクト指向といえば、C++/Javaの考え方を指すことが多いでしょう。

では、Objective-Cはどうなのか。こちらは、C++/Java流の扱い方ではありません。こちらが参考にしたのは「Smalltalk」というプログラミング言語です。オブジェクト指向という考え方を初めてきちんとした形で実装したのは、このSmalltalkが初めてといっていいでしょう。この考え方をそのままC言語に持ち込んで追加したのが「Objective-C」といっていいでしょう。

わかりやすくいえば、「C言語+Smalltalk=Objective-C」といってよいでしょう。が、このSmalltalkのオブジェクトの扱い方は、SmalltalkObjective-Cだけで、それ以外ではほとんど見られないのです。このため、Objective-Cのプログラムを見ると、たいていのプログラム経験者は「なんだこれは? 一体全体、どうなってるんだ?」と感じてしまう、というわけです。

ですから、「Objective-Cを学ぶ」というのは、「Smalltalk流のオブジェクトの扱い方を学ぶ」ことだといっていいでしょう。逆に言えば、この点さえしっかり理解出来れば、Objective-Cはそれほど猛烈に難解な言語というわけでもなのです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのObjective-Cプログラミング入門」に戻る