主な違い:プログラミング言語では、クラスはフィールドやメソッドのようなメンバを含むオブジェクトの設計図です。 モジュールは、そのメンバのプロパティ、イベント、変数、およびプロシージャに関連する定義を紹介します。 モジュールはクラスのようにインスタンス化することはできません。

クラスは、オブジェクトに関連付けられたすべての必要な詳細を記述できるため、オブジェクトのブループリントと見なされます。 このクラスからオブジェクトが作成されます。 クラスは、クラスの名前、属性、および操作という3つの重要な要素で構成されています。
パブリッククラスの学生
{
public StudentRegistration();
{
new RecordManager()。Initialize();
}
}
これはStudentという名前のクラスの例です。

モジュールは、そのメンバのプロパティ、イベント、変数、およびプロシージャに関連する定義を紹介します。 これはVBのモジュールの例です。
公開モジュールMymodule
サブメイン()
名前を薄暗い姓= InputBox( "あなたの姓は何ですか?")
MsgBox( "あなたの名前は"&firstnameです ")
終了サブ
エンドモジュール
モジュールは標準モジュールとも呼ばれます。 モジュールはネームスペースレベルでのみ使用できます。
オブジェクトを持つクラスとしてモジュールをインスタンス化することはできません。 これは、標準モジュールのデータのコピーが1つしか存在せず、プログラムの任意の部分で何らかの変更が発生して標準変数のパブリック変数に影響がある場合、他の部分にも同じ効果が見られるためですこの影響を受ける変数を使用します。 一方、各オブジェクトのデータは別々に保持されます。 その利点のためにモジュールとクラスは一般的に組み合わされています。
モジュールとクラスの比較
モジュール | クラス | |
継承 | サポートされていません | 支えられる |
インターフェースを実装する | いいえ | はい |
メンバー | 共有(暗黙的にVisual Basicでは) | 共有メンバーまたはインスタンスメンバーとしてクラスのメンバーの型を制御する |
オブジェクト指向 | いいえ、モジュールはインスタンス化できません | はい |
データのコピー | 1部のみ | オブジェクトデータは、インスタンス化されたオブジェクトごとに別々に存在します。 |
典型的なアプリケーション | 一般に、モジュール境界の外側でコンパイル、内部構造、およびプライバシーを分離するために外部レベルで使用されます。 | 一般的にモジュールの構成要素として |
好ましい | マージ操作を含む集合など、バイナリ操作で使用される抽象データ型の場合 | 継承が必要な場合 |
メンバー | メソッド、定数、クラス | メソッド、定数、変数 |
包含 | クラスまたはモジュールでincludeコマンドを使用して含めることができます | 含めることはできません |
スーパークラス | 対象 | モジュール |