今回研修でクラスについて調べることになったのですが、
設計等の高度な知識の前に、標準モジュールとの違いが私にはわかりません。
クラスとは基本的に共通関数の集まりと考えてよろしいのでしょうか?
無知すぎて申し訳ありません。
どなたかクラスについて基本的な考え方を教えてはいただけないでしょうか?
うーん、これが!というのも難しいけど、
テキストボックスも、ラベルも、内容はかくされているもののクラスなんです。
ただの共通関数とはちょっとちがって、
プロパティに変数を格納したり、イベントを起こしたり
フォームに具現化するものは作れないけれど(ものによっては不可能ではないものの)
ふつうのコントロールみたいなものとおもってかまわない…ようなものが作れます。
まあ、標準モジュールとの違いを簡単に言うなら、
メリットとして
・class.メソッド と言う形でしか使えないので、
どんなプロジェクトを作ってても名前が他とかぶることがない。
・RaiseEventを使ってイベントを作れる
(CallByName関数で代用は可能)
・プロパティ=変数 で代入して、そのなかで処理
みたいなことができるから、コードがすくなくなる
・ActiveXDLLなどを作るときは、絶対必要なので、予習にもなる
・感じおニューっぽい^^;(個人的な考えですけど)
デメリットとして
・オブジェクトとして作らないと使えない(Private class as クラス名)
・コールバックプロシージャ(AddressOfを使ったもの)が作れない
・ちょっとしたもの(あるソフトを起動して、何かを読ませるとか)をクラス化すると、かえって面倒
・すでに作られていて、実際に使われているメソッドを変換すると、修正がけっこう大変
Professional Edition以上なら、クラスビルダユーティリティっていう、クラスの作成支援アドインがついてます
まずは適当な関数を作ってみて、流れを見てみれば、わかってくるとおもいます。
下手にVBにこだわらずオブジェクト指向について
書かれた書籍を参考にするといいかも。
ツイート | ![]() |