クラスを定義する

MopsはGUIや基本データのクラスライブラリが付属しています。これを使うだけでもそこそこのものはつくれますが、少なくとも私の場合は、自分でクラスを定義しないでアプリケーションを書くことはありません。普通はどれか既定のクラスを継承して必要な部分を付け足します。ここでは、クラス定義の全体構造について説明します。

クラスの定義は、:CLASSというワードで始まり、;CLASSというワードで終わります。その中身は次のような順序になります。
:CLASS   ClassName    super{  SuperClass1  SuperClass2  ...  }
  [[インスタンス変数]]の宣言
  ........
  メソッド定義
  ........
;CLASS

:CLASSの直後に掲げられる非空白文字列"ClassName"がここで定義するクラスの名前になります。続いてsuper{と}の間に、このクラスの直接の上位になるスーパークラスの名前を書きます。複数のスーパークラスを持たせたいとき(多重継承)は、半角空白で区切って列挙します。super{も、これを閉じる}もMopsワードですから、他のワードとは半角空白を入れて離すことをわすれないようにしましょう。ここまでは、改行を挟まず、一行で書き切ってください。特定のクラスを上位クラスにする必要がないときには、"OBJECT"クラスを指定します。これはMopsの実際的なルートクラス(階層を上へ上へと辿るとすべてそこに行き着く)です。継承や多重継承については、おいおい触れることになるでしょう。

次は、インスタンス変数(IVAR)を宣言します。これらは、このクラスのインスタンスが持つ固有のデータの構造を構成します。そこに格納される値は、個々のオブジェクトの属性と呼ばれます。インスタンス変数は、他のMopsクラスのインスタンスを使うのが原則です。基本データクラスインスタンスが利用されるのがもっとも標準的です。静的オブジェクトの生成と同じ形式で宣言します。上位クラスのインスタンス変数は全て継承されますから、新しく宣言されるインスタンス変数はその後に追加されることになります。別のページでもう少し詳しく説明します。

インスタンス変数の宣言の次に、メソッドを定義します。基本的にはMopsワードの定義と同じといえます。これについても、別のページでもう少し詳しく説明します。

メソッドの定義が全て終わったなら、;CLASSでクラス定義を閉じます。

関連項目:






最終更新:2020年01月03日 23:37