金曜日, 9月 05, 2008

Encapsulation

前回の続き。短いけど。
何でメインになるプログラムのところでt.x++とかして値を代入しないのか、という話。
tを動かすには速度を代入すればいいから、普通の感覚だとt.x += vx;って感じにすると思う。

これはEncapsulation(カプセル化)というやつで、オブジェクト指向プログラミングの基本のひとつ。クラスの外から値を変えたりできないようにする。単純に言うと「オブジェクトのデータに直接アクセスするのではなく、メソッドを使え」ということらしい。
つまりt.go()で動くようにThingクラスを作っておくという訳。

なんだけど、Vectorクラスについては変数をパブリックにしておくと何かと便利なので、今回は例外にして、別のクラスでちゃんとやろうとのこと。Actionscript3.0アニメーションもそんな感じだったな...(13ページの「クラスとOOP」参照)まぁでもその程度のレベルでもこれだけのことができるってのがポイントだと思うので、あんまり堅く考え過ぎないようにしよう。

0 件のコメント: