通信用語の基礎知識 全国のICカードこれひとつ 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語名・実装 > C系 > Objective-C
Objective-C
辞書:電算用語の基礎知識 プログラミング言語編 (PTPROGN)
読み:オブジェクティヴスィー
外語:Objective-C
品詞:固有名詞

Cを拡張したオブジェクト指向プログラミング言語C++とは別物である。

目次
言語概要
概要

C++はCに対しSimula 67型のオブジェクト指向を導入したのに対し、Objective-CはSmalltalk型のオブジェクト指向を導入したものである。

NEXTSTEPで採用された。当時は既にC++もObjective-Cもあったが、どちらも普及はしていなかった。この何れかを選択するにあたり、NeXTはObjective-Cを選択した。

しかし時代はObjective-C側には傾かず、結果として普及したのはC++だった。このため、Objective-Cはマイナーな言語となっている。

NEXTSTEPの後継であるMac OS XのCocoaも、同様にObjective-Cが選択された。

特徴
オブジェクト

Objective-CはCに対してオブジェクト指向を取り入れた言語である。同様の言語にC++があるが、そのアプローチの方法が全く違っている。

C++は構造体を拡張する形でクラスを導入した。Objective-Cは、オブジェクトの拡張に、Smalltalk風のCとは全く違う文法を取り込んでいる。

つまり、一つのプログラミング言語に、由来の全く異なる二つの言語が同居していることになる。このためObjective-Cは分かりにくい、として普及しなかった。

書式概要

クラス定義

オブジェクト指向プログラミングの機能等は、C++と大差ない。但し書式は全く違う。

クラス関係の定義について、Objective-Cは新しい予約語や構文を定義するのではなく、コンパイラーディレクティブが使われる。

クラスの定義は、@interface から始まり @end で終わる。ここで、クラス名と親クラス名、インスタンス変数メソッドの宣言を行なう。

メソッド定義はクラス定義と分離されている。メソッド定義は、@implementation から始まり @end で終わる。


インスタンス

クラスのインスタンス化は、一般的なオブジェクト指向プログラミング言語と全く違い、次のように記述する。

[クラス名 メソッド名:引数リスト…]

このメッセージ式はid型を返すため、「id obj = [ClassName method];」のように記述することができる。例えば、富士山(MtFUJI)が噴火(eruption)する処理は、次のように書かれる。

id obj = [MtFUJI alloc];

[obj eruption];

allocメソッドでオブジェクトを生成し、生成したオブジェクトが返される。次に、そのオブジェクトのeruptionメソッドを実行している。

objを使い捨てにするのであれば、次のように書くことも出来る。

[[MtFUJI alloc] eruption];

[MtFUJI alloc]によって返されたid型オブジェクトに対し、eruptionメソッドを呼び出す。

リンク
用語の所属
オブジェクト指向プログラミング言語
オブジェクト指向
関連する用語
NEXTSTEP
C
C++

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04 (07-Mar-2021)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic