クラスモジュールの必要性とは?

解決


たけ  2001-06-25 17:51:39  No: 74540  IP: [192.*.*.*]

クラスモジュールの必要性について誰か教えて頂けないでしょうか?
今までクラスモジュールを使ったことがなくて色々調べてはいるのですがクラスは便利という意見が多数存在しました。でも標準モジュールの方が処理速度が速いというのになんでクラスが便利なのかわかりません。標準モジュールでも別に良いのでは?って言う考えはだめなのでしょうか?どんな時がクラスにすると便利なのか誰か教えて頂けないでしょうか?

編集 削除
こころ  URL  2001-06-28 01:03:01  No: 74541  IP: [192.*.*.*]

VBではクラスはつくったことないんですが・・・。

VBのフォーム等を使っても便利とは思いませんか?
あれは、いわゆる"フォーム"というクラスを
VBが提供してくれているわけで・・・。
テキストボックスやラベルも同じです。

速さだけ求めるのなら、アセンブラ言語を使うしかないわけで・・・。
それに、クラスも言うほど遅くないはずです。
(VBのクラスがどの程度の速度になるかは知りませんが・・・。)
まぁ、多少の冗長性はあるんでしょうが。

無理にクラスを使うことはないと思いますよ。
標準モジュールで間に合うのならそれに越したことはないです。
ただ、関数の再利用とか何度もしてると
だんだん標準モジュールでは不便かな、って思う時がくると思います。
その時に、クラスを使ってやって下さい。

編集 削除
Say  2001-06-28 10:40:36  No: 74542  IP: [192.*.*.*]

たとえば、複数の人間でゲームを開発するとします。
一人が勇者、一人がモンスターのモジュールを作ることにしました。
おおまかなことだけ決めて、可能な限り本人の判断で作りました。
勇者担当が、ヒットポイント変数をglngHP,ダメージ計算関数を
glngDMCulcでつくりました。たまたまモンスター担当も同名で
作ったらどうなるでしょう。
お互い標準モジュールで作っていたら、当然バッティングします。
事前にめいめい規則を作っておくか、バッティング発覚後に
修正するしかありません。
でも、これがクラスモジュールなら心配いりません。
勇者のHPはYusha.glngHP、同じモンスターでもドラゴンのダメージ
ならDragon.glngDMCulc、オーガのダメージならOgre.glngDMCulcで
表現され、バッティングしません。
複数の人間でなく、「昨日の自分」と「今日の自分」でもおなじ
ことです。
これはクラスの基本特性のひとつ「カプセル化(隠蔽)」の
おかげです。
このように、クラスは高度に独立性が保たれているため、
一度つくってしまえば、InとOutだけおぼえてて、あとは
忘れてしまってもかまわないのです。
逆をいうならば、クラスのなかからクラス外の変数、関数を参照、
呼び出ししてはいけないということです。
呼び出しても動きますが、再利用が面倒になります。

クラスモジュールを使う前に一度「言語の構造化」→「ソフトウェアカタストロフの懸念」→「オブジェクト指向」という言語の流れを調べてみると「なぜクラスか」の回答が得やすいと思います。

たぶん、プログラマとして、一回り大きくなれます。

編集 削除
たけ  2001-06-28 15:50:45  No: 74543  IP: [192.*.*.*]

こころさん、sayさん、ありがとうございました。
まだあまり解ってないかもしれませんが2人の言葉を参考に
クラスを学んでみます。本当にありがとうございました。

編集 削除