logo

Java でのインスタンス化

インスタンス化 「」は、Java プログラミングにおける普遍的でわかりやすい概念を定義する非常に重要な単語であり、新しいインスタンスを作成します。 オブジェクト プログラムで使用されます。このセクションでは、次のことについて説明します。 Java のインスタンス化とは何か、クラスをインスタンス化する方法、 そして クラスのインスタンスまたはオブジェクトを作成するにはどのような方法がありますか?

Java でのインスタンス化

インスタンス化

ジャワインスタンス化 に電話するという意味です コンストラクタ を作成するクラスの 実例 または 物体 そのクラスのタイプ。つまり、クラスのオブジェクトを作成することを呼びます。 インスタンス化 。これはオブジェクトの初期メモリを占有し、参照を返します。 Java でのオブジェクトのインスタンス化は、クラスの設計図を提供します。

オブジェクトとは何ですか?

  • これはランタイム エンティティです。
  • これにはクラスのブループリントが含まれています。
  • クラスのオブジェクトはいくつでも作成できます。
  • 次のようなユーザー定義データを表す場合があります。 ベクター 、リストなど。

インスタンス化の構文

 ClassName objName = new ClassName(); 

または

 ClassName cn; cn= new ClassName; 

例を通して上記のステートメントを理解しましょう。

インスタンスの作成

インスタンスを作成するには 2 つの方法があります。

新しいキーワードの使用

Java が提供するのは、 新しい キーワード クラスをインスタンス化します。

参照の定義

 //defines a reference (variable) that can hold an object of the DemoClass DemoClass dc; 

インスタンス化

junit テストケース
 DemoClass dc = new DemoClass(); //instantiation 

参照変数を定義する場合、次のように上記のクラスをインスタンス化することもできます。

 //creates a DemoClass object (instantiate) //new keyword allocates memory space for the newly created object dc = new DemoClass(); 

を使用すると、 新しい キーワードの後に​​クラス名を指定すると、そのクラスのインスタンスまたはオブジェクトが作成されます。 コンストラクターの作成 クラスの とも呼ばれます インスタンス化

注: ローカル内部クラスのメソッドを呼び出したい場合は、そのクラスをインスタンス化する必要があります。

静的ファクトリーメソッドの使用

クラスをインスタンス化するもう 1 つの方法は、 静的 ファクトリーメソッド 。クラスは、パブリック静的ファクトリ メソッドを提供できます。これは、 実例 クラスの。と同じではないことを常に覚えておいてください。 ファクトリメソッドパターン

コンストラクターの代わりにそれを使用できます。コンストラクターの代わりに静的ファクトリ メソッドを提供することには、長所と短所の両方があります。の 初め 利点は、コンストラクターとは異なり、静的ファクトリ メソッドにも名前があることです。の 2番 利点は、コンストラクターとは異なり、呼び出されるたびに新しいオブジェクトを作成する必要がないことです。の 三番目 コンストラクターとは異なり、戻り値の型の任意のサブタイプのオブジェクトを返すことができるという利点があります。の 第4 利点は、パラメータ化された型インスタンスの作成の冗長性が軽減されることです。

欠点は、静的ファクトリ メソッドのみを提供することで、public または protected コンストラクターを持たないクラスをサブクラス化できないことです。もう 1 つの欠点は、他の静的メソッドと簡単に区別できないことです。

静的ファクトリーメソッドの例を見てみましょう。

 public final class Furniture { //.. private int price; private String description; private Furniture (int price, String description) { this.price = price; this.description = description; } public static Furniture getNewFurniture (int price, String description) { return new Furniture (price, description); } //.. } 

心に引っかかるかもしれないいくつかの重要な質問を見てみましょう。

抽象クラスをインスタンス化できますか?

いいえ、インスタンス化できません 抽象クラス 。ただし、サブクラス化することもできます。抽象クラスがサブクラス化されると、通常、すべての抽象クラスの実装が提供されます。 メソッド その親クラスで。

インスタンス化と初期化の違いは何ですか?

インスタンス化と初期化は、Java プログラミングではまったく異なる概念です。

初期化: 変数に値を代入すると呼び出されます。 初期化 。例えば、 コスト = 100 。変動費の初期値を 100 に設定します。

URI と URL

インスタンス化: new キーワードを使用してオブジェクトを作成することをインスタンス化と呼びます。例えば、 車 ca = 新しい車 ()。 Car クラスのインスタンスを作成します。