5章. クラス


目次

  1. クラス定義の構文
  2. メンバ変数
  3. 継承
  4. インスタンスの初期化

訳注:下位の目次を省きます。

クラスは「もの」を表します。それは具体的なもの、グラフィックや概念であってもかまいません。 そしてクラスのインスタンスは特定のものを表し、例えばJavaFXではこうなります。

class Shoe {
   var color : String;
   var size: Number;
   var style : String;
}

def rubySlipper = Shoe {
   color: "red"
   size: 7
   style: "slipper"
}

ここにShoeクラスがあるものを表していて、rubySlipperに保存されているインスタンスは具体的なものを表しています。 インスタンスの状態が保存されているインスタンス変数があることに注意してください。

一方、CheckBoxクラスはグラフィックの一種です。

public class CheckBox extends CustomNode, Resizable {
   public var title : String;

   public var visible : Boolean;

   public var skin : Skin on replace oldSkin {
      if (skin != null) then skin.control = this;
      if (oldSkin != null) then oldSkin.control = null;
   }

   public function requestFocus() : Void {
      if (visible) then skin.requestFocus();
   }
}   

二つの異なるクラス(CustomNodeとResizable)を拡張しています。そのため、それらのインスタンス変数とインスタンス関数を含んでいます。 チェックボックスはさらに3つのインスタンス変数を追加していて、 skinとCheckBoxの関連を維持するためのon replace句を持つskinを含んでいます。 インスタンス関数のrequestFocusも追加しています。

[To do : インスタンスの初期化の節を加える(インスタンス変数の初期化の節の前に)。それからインスタンス変数の初期化の節を整理する。]


Home