Objective-C
C/C++言語には結構自信があったつも りなんですが、Objective-Cはチ ンプンカンプン??。 しかしっ!、しかしですよっ!。これが結構奥深いんです。 簡単に言うとこんな事がたった数行のコードでできてしまう??というところにあります。 いろんなところで感動してしまいました(笑)。 まぁそれらの事はMacの開発環境がそうであってObjective-Cを語るのとは別になるのかもしれませんけど。 ある文献には次ぎのような事が書いてありました。C++がC言語の枠組みの中にオブジェクト指向の機構を追加しているのに対し、 Objective-Cはオブジェクト指向の枠組みの中でC言語を実現しようとしている。
そうなんです。Objective-Cはそういった意味では本物のオブジェクト指向言語なんです。 最初にオブジェクト指向を提唱したSmalltalkの概念を引きついだ、まさに継承者なんですよっ。すばらしいっ!
Objective-Cのすぐれた特徴
・動的に呼び出すメソッドを探す事ができる。
サーブレットなんかでデータを取り出したりセットしたりするメソッド、いわゆるセッターゲッターみたいな事(グルーコードって言われてるらしいですね)を やってますけどああいった事が簡単にできてしまう。
・既存の提供されているクラスにメソッドを追加できる。
これはすごい。JavaなんかだとStringクラスにメソッドを追加しようと思うと、Stringクラスを継承して名前を変えて別のクラスを作成すると 思います。 当然いいままで使っていた部分のクラス名を変更する必要があるかもしれません。 しかしっ!、Objective-Cは既存のクラスに自分の作成したメソッドを追加できるのです。 したがって、Javaのようにオーバヘッドも増えることもないし、そのままコーディングも変更する必要ないわけです。これにはカテゴリ機能を使います。 複数のファイルでクラスメソッドを宣言することができるようになります。そうすることによって使用する段階で動的に組み込む事ができるのです。
サーブレットなんかでデータを取り出したりセットしたりするメソッド、いわゆるセッターゲッターみたいな事(グルーコードって言われてるらしいですね)を やってますけどああいった事が簡単にできてしまう。
・既存の提供されているクラスにメソッドを追加できる。
これはすごい。JavaなんかだとStringクラスにメソッドを追加しようと思うと、Stringクラスを継承して名前を変えて別のクラスを作成すると 思います。 当然いいままで使っていた部分のクラス名を変更する必要があるかもしれません。 しかしっ!、Objective-Cは既存のクラスに自分の作成したメソッドを追加できるのです。 したがって、Javaのようにオーバヘッドも増えることもないし、そのままコーディングも変更する必要ないわけです。これにはカテゴリ機能を使います。 複数のファイルでクラスメソッドを宣言することができるようになります。そうすることによって使用する段階で動的に組み込む事ができるのです。
Objective-Cの短所
上記のようなすぐれた特徴を維持するために、さまざまな箇所で
実行時に判断する部分が多くなっています。
従ってコンパイルはすんなり通るけれども、実行時にうまく動かないといった、、、人間がもっとも不得意とする分野に突入するわけです。
Objective-Cの特徴はこのサイトで。。。
本 家AppleサイトでのObjective-Cの説明。。。