主な違い :クラスとオブジェクトは、オブジェクト指向プログラミング言語の2つの最も重要な概念です。 この2つの主な違いは、クラスは同じタイプの異なるオブジェクトを作成するために使用される設計図です。
オブジェクト指向プログラミング(OOP)は、より多くのコードで複雑なアプリケーションを処理することができるため、非常に人気のあるプログラミングスタイルです。 クラスとオブジェクトは、OOP言語で一般的に使用されている2つの用語です。 最も基本的な形式では、オブジェクトはクラスのインスタンス化です。 この記事は2つの用語を区別します。
オブジェクトは、多態性と継承に加えて、抽象データ型の拡張です。 オブジェクトには状態(データ)と動作(コード)があります。 プログラミングにおいて重要なのは、各オブジェクト自体がタスクの実行を担当することです。
オブジェクトには、特定の種類のデータを有用にするために必要なプロパティとメソッドが含まれています。 オブジェクトのプロパティはそれが知っているものであり、そのメソッドはそれができることです。 メソッドはアプリケーションに機能を提供し、オブジェクトのデータが正しく使用されていることを確認します。 メソッドを使用すると、タスクの実際の実行を隠したり、さまざまな種類のオブジェクトに対する特定の操作用に標準化したりすることもできます。 メソッドはクラスのオブジェクトにアクセスするために使用されます。 すべての対話は、オブジェクトのメソッドを通じて行われます。 これはデータのカプセル化として知られています。 オブジェクトはデータやコードの隠蔽にも使用されます。
クラスはオブジェクトの青写真であると言われています。 それはオブジェクトを作成するために使用される拡張可能なガイドです。 それはオブジェクトを作成するサブルーチンです。 クラスはオブジェクトを表しません。 オブジェクトが持つべきすべての情報とメソッドを表します。 1つのクラスを使用して複数のオブジェクトをインスタンス化できます。 これは拡張TYPE宣言と見なされます。 以下は基本的な例です。
クラスSample
{
public static void main(String [] args)
{
String sampleText = "Hello world!";
System.out.println(sampleText);
}
}
上記の 'Sample'という名前のクラスには、mainという名前の単一のメソッドが含まれています。 mainの中では、可変のサンプルテキストは "Hello world!"として定義されていますmainメソッドは、 'out.println'メソッドを含むJavaのライブラリからクラスシステムを呼び出します。窓。
クラスはOOPの基本部分です。 それらは、プログラムのすべての部分からアクセス可能であるのではなく、変数とメソッドを特定のオブジェクトに分離することを可能にします。 このデータのカプセル化は、プログラムの他の部分での変更から各クラスを保護します。 クラスを使用することで、開発者はプログラムを簡単に変更できるソースコードを持つ構造化プログラムを作成できます。
オブジェクトとクラスの比較
対象 | クラス | |
定義 | オブジェクトは、OOPでコマンドを使用して利用できるエンティティとして定義されています。 | クラスは、1つ以上のオブジェクトを記述するためにOOPで使用されます。 |
変数 | それは変数です。 | タイプです。 |
概念 | それはクラスのインスタンス化です。 | これはデータ構造の拡張概念です。 |
記憶 | メモリが割り当てられています。 | メモリが割り当てられていません。 |
例 | #含める 名前空間stdを使用する。 クラスRectangle { int幅、高さ。 パブリック: void set_values(int、int); int area(){戻り幅*高さ;} ; void Rectangle :: set_values(int x、int y){ 幅= x。 身長= y。 } int main(){ 四角形の四角形、rectb。 rect.set_values(3, 4); rectb.set_values(5, 6); cout << "rect area:" << rect.area()<< endl; cout << "rectb area:" << rectb.area()<< endl; 0を返します。 } | クラスRectangle { int幅、高さ。 パブリック: void set_values(int、int); int領域(無効)。 四角形; |
識別子 | 'object_names'は、このクラスのオブジェクトの名前のオプションのリストです。 | 'class_name'はクラスの有効な識別子です。 |
目的 | データ抽象化とさらなる継承 | データのグループ化 |
タイプ | 参照 | 値 |