アクセス・レベル | 制限 |
---|---|
private | メソッドを宣言したクラスのスコープからのみ使うことができる |
protected | メソッドを宣言したクラスのスコープと派生したクラスのスコープで使うことができる |
public | すべてのクラスのスコープとグローバル・スコープで使うことができる(デフォルト) |
メンバには3種類のアクセス・レベルがあります。
アクセス・レベルの記述を省略した場合は、protectedになります。
アクセス・レベル | 制限 |
---|---|
private | メンバを宣言したクラスのスコープからのみアクセスできる |
protected | 派生したクラスからアクセスできることを除けば、privateメンバと同じである(デフォルト) |
public | すべてのスコープからアクセスできる |
# 乱数クラス class Random { # コンストラクタ定義 constructor {} { init [expr [clock seconds]+[pid]] } # デストラクタ定義 destructor {} # メソッド宣言 protected method init {value} # メソッド宣言 public method getvalue {} } # メソッド定義 body Random::init {value} { expr srand($value) return } # メソッド定義 body Random::getvalue {} { expr rand() } |
# 色クラス class Color { # staticメソッドの定義 proc RGB {color} { switch -- $color { red {set value "255 0 0"} green {set value "0 255 0"} blue {set value "0 0 255"} } return $value } } # クラスを指定して呼び出す Color::RGB red => 255 0 0 |
# カウンタ・クラス class Counter { # staticメンバの定義 public common count 0 # メソッドの定義 public method incr {} { ::incr count } } # 1つ目のオブジェクトを作成 Counter c1 # カウンタのアップ c1 incr => 1 # カウンタの取得 c1 cget -count => 1 # 2つ目のオブジェクトを作成 Counter c2 # カウンタの取得 c2 cget -count => 1 |