OOP におけるクラスとオブジェクトの違い
クラスとオブジェクトの主な違い
- クラスはプログラム内でオブジェクトを作成するためのテンプレートですが、オブジェクトはクラスのインスタンスです。
- クラスは論理エンティティであり、オブジェクトは物理エンティティです。
- クラスはメモリ空間を割り当てません。 一方、オブジェクトはメモリ空間を割り当てます。
- クラスを宣言できるのは XNUMX 回だけですが、クラスを使用して複数のオブジェクトを作成できます。
- クラスは操作できませんが、オブジェクトは操作できます。
- クラスには値がありませんが、オブジェクトには独自の値があります。
- 「class」キーワードを使用してクラスを作成することができますが、一方で「new」キーワードを使用してオブジェクトを作成することができます。 Java.

クラスとは何ですか?
クラスは、オブジェクトがどのように動作するか、およびオブジェクトに何が含まれるかを決定するエンティティです。 言い換えれば、これは特定のタイプのオブジェクトを構築するための青写真または一連の指示です。 メンバー変数とメンバー関数またはメソッドの初期値を提供します。
オブジェクトとは何ですか?
オブジェクトは、データを活用するためのメソッドとプロパティで構成される自己完結型のコンポーネントにすぎません。 これは、クラスの動作を決定するのに役立ちます。
たとえば、オブジェクトにメッセージを送信するときは、オブジェクトにそのメソッドの XNUMX つを呼び出すか実行するように依頼することになります。
プログラミングの観点から見ると、オブジェクトはデータ構造、変数、またはメモリ位置が割り当てられた関数です。オブジェクトはクラス階層として設計されます。
クラスとオブジェクト – それらの違い
クラスとオブジェクトの重要な違いは次のとおりです。
CLASS | オブジェクト |
---|---|
クラスとは、プログラム内でオブジェクトを作成するためのテンプレートです。 | オブジェクトはクラスのインスタンスです。 |
クラスは論理的なエンティティです | オブジェクトは物理的な実体です |
クラスは作成時にメモリ領域を割り当てません。 | オブジェクトは作成されるたびにメモリ空間を割り当てます。 |
クラスを宣言できるのは XNUMX 回だけです。 | クラスを使用して複数のオブジェクトを作成できます。 |
例: 車。 | 例: ジャガー、BMW、テスラなど。 |
クラスがオブジェクトを生成する | オブジェクトはクラスに命を与えます。 |
クラスはメモリ内で使用できないため、操作できません。 | それらは操作可能です。 |
フィールドに関連付けられた値はありません。 | すべてのオブジェクトには独自の値があり、フィールドに関連付けられています。 |
「class」キーワードを使用してクラスを作成できます。 | 「new」キーワードを使用してオブジェクトを作成できます。 Java |
の概念を理解する Java クラスとオブジェクトとその例。
特に犬向けのペット管理システムを開発する例を見てみましょう。 犬の品種、年齢、サイズなど、犬に関するさまざまな情報が必要です。
現実の存在、つまり犬をソフトウェア エンティティにモデル化する必要があります。
さらに、何百万ドルもかかる問題は、そのようなソフトウェアをどのように設計するかということです。 これが解決策です-
まず、演習をしてみましょう。
以下に XNUMX 種類の犬の写真をご覧ください。
今すぐここで止めてください! それらの違いを列挙してください。
あなたが挙げた違いのいくつかは、品種、年齢、大きさ、色などかもしれません。少し考えてみると、これらの違いは、これらの犬に共通するいくつかの共通の特徴でもあります。 これらの特性 (品種、年齢、サイズ、色) は、オブジェクトのデータ メンバーを形成できます。
次に、これらの犬の一般的な行動 (睡眠、座る、食べるなど) をリストします。つまり、これらがソフトウェア オブジェクトのアクションになります。
これまでに、次のことを定義しました。
- CLASS:犬
- データメンバー or オブジェクト:サイズ、年齢、色、品種など。
- メソッド:食べる、寝る、座る、走る。
さて、データメンバー(品種のサイズ、年齢、色)の異なる値について、 Java クラスでは、さまざまな犬のオブジェクトを取得できます。
この OOP アプローチを使用して、任意のプログラムを設計できます。
クラスとオブジェクト Java
以下のプログラムでは、Dog というクラスを宣言しています。 新しいキーワードを使用して、「maltese」というクラスのオブジェクトを定義しました。 最後のステートメント System.out.println(maltese.getInfo()); 犬種、サイズ、年齢、毛色などの犬の情報を表示しています。
// Class Declaration class Dog { // Instance Variables String breed; String size; int age; String color; // method 1 public String getInfo() { return ("Breed is: "+breed+" Size is:"+size+" Age is:"+age+" color is: "+color); } } public class Execute{ public static void main(String[] args) { Dog maltese = new Dog(); maltese.breed="Maltese"; maltese.size="Small"; maltese.age=2; maltese.color="white"; System.out.println(maltese.getInfo()); } }
出力:
犬種:マルチーズ サイズ:S 年齢:2歳 毛色:ホワイト
クラスの種類
重要なクラスの種類は次のとおりです。
派生クラスと継承
派生クラスは、他のリマイニング クラスから作成または派生したクラスです。 基本クラスの機能を強化するために使用されます。 このタイプのクラスは、既存のクラスからプロパティを派生および継承します。 独自のプロパティを追加または共有/拡張することもできます。
スーパークラス:
スーパークラスは、そこから多くのサブクラスを派生できるクラスです。
サブクラス:
サブクラスは、スーパークラスから派生したクラスです。
混合クラス
混合クラスは、あるクラスのプロパティを別のクラスに継承するのに役立つもう XNUMX つの機能です。 派生クラスはスーパークラス機能の完全なセットを使用しますが、派生クラスはクラスの機能のサブセットを使用します。
クラスの使用
クラスの重要な用途は次のとおりです。
- クラスは、データ変数とメンバー関数の両方を保持するために使用されます。
- ユーザー定義オブジェクトを作成できるようになります。
- クラスは、データに関する情報を整理する方法を提供します。
- クラスを使用して、他のクラスのプロパティを継承できます。
- クラスを使用して、コンストラクターまたはデストラクターを利用できます。
- 大量のデータや複雑なアプリケーションにも使用できます。
オブジェクトの使用
オブジェクトの重要な用途は次のとおりです
- これは、受け入れられたメッセージの種類と返された応答の種類を知るのに役立ちます。
- オブジェクトを使用すると、オブジェクト参照変数を使用してメモリにアクセスできます。
- データを操作するために使用されます。
- オブジェクトは、解決策を見つけようとしている現実世界の問題を表します。
- これにより、データ メンバーとメンバー関数が目的のタスクを実行できるようになります。