Next: Data Types, Previous: Typed Variables, Up: Def Cmds in Detail
オブジェクト指向プログラミングで使用するような,抽象的なオブジェクトに関 する記述を書式化するためのコマンドには以下のものがあります.クラスは抽象 的なオブジェクトの定義された型です.クラスのインスタンスはクラスの型を持 つ特定のオブジェクトです.インスタンス変数はクラスに属するがそれぞれのイ ンスタンスが独自の値を持つ変数です.
定義では,クラス名はクラスに対するプログラミングシステムで本当に定義され
た名前の場合,@code
をその周りに書くべきです.そうしない場合,通
常のテキストフォントで印刷されます.
@defcv
category class name@defcv
コマンドは,オブジェクト指向プログラミングで,クラスに関連
する変数に対する一般的な定義コマンドです.@defcv
コマンドは三つの
引数をとります.定義している事柄のカテゴリ名,属するクラス,そしてその名
前です.このようにします.
@defcv {Class Option} Window border-pattern ... @end defcv
これは,Window
クラスのborder-pattern
クラスオプションの定義
の最初の行の書き方を説明しています.
テンプレートは以下の通りです.
@defcv category class name ... @end defcv
@defcv
は変数索引に項目を作成します.
@defivar
class name@defivar
コマンドは,オブジェクト指向プログラミングのインスタンス
変数に対する定義コマンドです.@defivar
は‘@defcv {Instance
Variable} ...’と同じです.
テンプレートは以下の通りです.
@defivar class instance-variable-name body-of-definition @end defivar
@defivar
は変数索引に項目を作成します.
@deftypeivar
class data-type name@deftypeivar
コマンドは,オブジェクト指向プログラミングの型を付け
られたインスタンス変数に対する定義コマンドです.それは,@defivar
に,インスタンス変数の型を指定するためのdata-typeパラメータが付い
たものに似ています.@deftypeivar
は変数索引に項目を作成します.
@defop
category class name arguments...
@defop
コマンドは,オブジェクト指向プログラミングのメソッドに似た
構成要素に対する定義コマンドです.これらの構成要素は関数のように引数を取
りますが,オブジェクトの特定のクラスに関連付けされています.
例えば,メソッドとしてクラスに関連付けされているラッパー(wrappers)
と呼ばれる概念を持つシステムもありますが,それは関数というよりマクロのよ
うに動作します.@defop Wrapper
をこれらの一つとしての記述に使用す
ることが可能です.
メソッドとオペレーション(operations)を分けた方が便利なときもありま
す.オペレーションをメソッドの詳述と考えることができます.このため,ウィ
ンドウシステムは全てのウィンドウクラスがexpose
と言う名前のメソッ
ドを持つことを指定できます.我々は,このウィンドウシステムが一般的なウィ
ンドウ上にexpose
オペレーションを定義していると言っているのです.
特に,オペレーションは名前を持ち,引数のパターンも指定されています.全て
のオペレーションを実装したメソッドは,オペレーションで使用されるアプリケー
ションが実装したメソッドを知ることなくそれを行うので.同じ引数を受け入れ
るようにする必要があります.
メソッドよりオペレーションを説明した方がより意味があることもよくあります.
例えば,ウィンドウアプリケーション開発者は,expose
オペレーション
を知っている必要がありますが,与えられたウィンドウのクラスが,このオペレー
ションを実装した独自のメソッドを持つかどうかを考慮する必要はありません.
このオペレーションを記述するため以下のように書きます.
@defop Operation windows expose
@defop
コマンドは,行の最初に書かれ,同じ行にオペレーションのカテ
ゴリの全体的な名前,オペレーションクラスの名前,オペレーションの名前,そ
して,存在する場合その引数を続けます.
テンプレートは以下の通りです.
@defop category class name arguments... body-of-definition @end defop
@defop
は`expose
on windows
'のような項目を,関数索
引に作成します.
@deftypeop
category class data-type name arguments...
@deftypeop
コマンドは,オブジェクト指向プログラミングの型付のオペ
レーションに対する定義コマンドです.それは@defop
に,メソッドの戻
り値を指定するdata-typeパラメータを加えたものに似ています.
@deftypeop
は関数索引に項目を作成します.
@defmethod
class name arguments...
@defmethod
コマンドは,オブジェクト指向プログラミングのメソッドに
対する定義コマンドです.メソッドは特定のオブジェクトのクラスとそのサブク
ラスのためのオペレーションを実装する関数のようなものです.
@defmethod
は‘@defop Method ...’と同じです.コマンドは
行の最初に書かれ,メソッドのクラス名,メソッド名,そして存在する場合はそ
の引数が続きます.
例えば,以下のようにします.
@defmethod bar-class
bar-method argument
...
@end defmethod
これは,クラスbar-class
のbar-method
と呼ばれるメソッドに対
する定義を説明しています.メソッドは引数を取ります.
テンプレートは以下の通りです.
@defmethod class method-name arguments... body-of-definition @end defmethod
@defmethod
は,関数索引に`bar-method
on bar-class
'
のような項目を作成します.
@deftypemethod
class data-type name arguments...
@deftypemethod
コマンドは,C++やJavaのようなオブジェクト指向の型
のある言語のメソッドのに対する定義コマンドです.それは,
@defmethod
コマンドにメソッドの戻り値を指定するための
data-typeパラメータを追加したものに似ています.