クラスと構造の違いは何ですか

目次:

Anonim

NS 主な違い クラスと構造の間には、 クラスは参照型のデータ型であり、構造は値型のデータ型です。

プログラミングでは、変数はデータを格納するためのストレージ領域です。各変数には、格納できる特定のデータ型があります。主に、値型と参照型の2つのデータ型があります。値型では、値が直接割り当てられます。さらに、int、float、およびdoubleは、値型データ型の例です。一方、参照型のデータ型は実際のデータを格納しません。代わりに、変数への参照を格納します。クラスと構造は2つのプログラミング概念です。前述のように、Classは参照型のデータ型ですが、Structureは値型のデータ型です。

クラス、構造

クラスとは

すべてがオブジェクト指向プログラミング(OOP)のオブジェクトです。オブジェクトはクラスを使用して作成されます。クラスは、オブジェクトを作成するための青写真です。さらに、クラスは属性とメソッドで構成されます。属性はプロパティとも呼ばれ、オブジェクトの特性を定義します。メソッドは、オブジェクトの動作を定義します。さらに、クラスを使用してオブジェクトを作成することをインスタンス化と呼びます。

図1:クラスのUML図

クラスのメンバーは、クラスの属性とメソッドです。主に、これらはOOPに隠されたデータをサポートするための、パブリック、プライベート、および保護された3つのアクセス指定子です。まず、パブリックメンバーはすべてのクラスに表示されます。次に、プライベートメンバーは同じクラス内でのみ表示されます。第三に、保護されたメンバーは、パッケージ内およびサブクラスによって表示されます。

さらに、クラスにはコンストラクターと呼ばれる特別な関数も含まれています。新しいオブジェクトを作成するのに役立ちます。また、クラスと同じ名前で、戻り型はありません。これは、デフォルトのコンストラクターまたはパラメーター化されたコンストラクターにすることができます。

クラスの例は次のとおりです。

クラスの従業員{

public int id;

パブリック文字列名。

}

主なプログラムは以下の通りです。

従業員e = new Employee();

e.id = 101;

e.name =“ Ann”;

上記のプログラムによると、クラスにはidとnameの2つのプロパティがあります。それらは公開されており、他のクラスからアクセスできます。メインプログラムでは、コンストラクターがEmployeeタイプのオブジェクトを作成します。次に、値がidとnameに与えられます。

構造とは

構造体は、複数のデータ型を保持する単一の変数です。言い換えると、これは異なるデータ型の変数のコレクションであり、すべて1つの名前で参照されます。構造体宣言は、構造体のインスタンスの作成に役立つテンプレートを形成します。例は次のとおりです。

struct Employee {

public int id;

パブリック文字列名。

};

主なプログラムは以下の通りです。

従業員e;

e.id = 101;

e.name =“ Ann”;

上記のプログラムによると、構造にはidとnameの2つのプロパティが含まれています。メインプログラムでは、「Employee e」ステートメントは、「e」を構造体タイプのEmployeeとして宣言します。次に、idとnameに値が与えられます。

クラスと構造の違い

意味

クラスは、特定の種類のすべてのオブジェクトに共通の変数とメソッドを定義する青写真です。参照型のデータ型です。逆に、構造体は、さまざまなデータ型の関連データを保持できる値型データ型です。したがって、クラスと構造の主な違いはデータ型にあります。

継承

クラスは他のクラスまたは構造から継承できますが、構造は他のクラスまたは構造を継承できません。

デストラクタ

また、デストラクタはクラスと構造のもう1つの違いです。クラスにはデストラクタを含めることができますが、構造にはデストラクタがありません。

インスタンス化

さらに、ClassとStructureのもう1つの違いは、クラスが新しいキーワードを使用してオブジェクトをインスタンス化するのに対し、構造体は新しいキーワードを使用せずにオブジェクトをインスタンス化することです。

実例

キーワード

さらに、キーワード「クラス」はクラスを定義します。キーワード「struct」は構造体を定義します。

デフォルトのアクセス指定子

さらに、クラスでは、宣言されたアクセス指定子がない場合、メンバーはプライベートです。構造体では、アクセス指定子が宣言されていない場合、メンバーはパブリックです。

結論

プログラミングでは、データを保存する必要があります。変数は、データを格納するために使用される場所です。変数には、値型と参照型の2種類があります。クラスと構造の基本的な違いは、クラスは参照型のデータ型であるのに対し、構造は値型のデータ型であるということです。

リファレンス:

1.「C#クラス」。 Www.tutorialspoint.com、ここから入手可能2。 「C#構造」。 Www.tutorialspoint.com、ここから入手できます。

画像提供:

1.「Oop-uml-class-example」作成者元のアップローダーは英語版ウィキペディアのEsapでした。 – Commons Wikimediaを介してen.wikipediaからCommons(CC BY-SA 3.0)に転送されました

クラスと構造の違いは何ですか