私は次のステートメントの解釈について混乱しています
_Fruit x= new Fruit();
_
私の解釈では、new
演算子とFruit();
は、メモリ内のどこかに新しいオブジェクトを作成します。
x
は、作成されたオブジェクトを指す参照変数です。_Fruit x
_と書くと、どこを指さない参照変数が作成されることを意味するだけですか?
x
がオブジェクトのメモリ位置を保持していると言うこともできますか?
あなたは絶対に正しいです。
new
演算子は、Fruitタイプの新しいオブジェクト用にメモリ内のスペースを予約します。割り当て=
は変数x
に参照を割り当てます。
あなたが書くとしたらFruit y = x;
、新しい参照のみを作成するため、y
とx
の両方が引き続きメモリ上の単一の場所を指します。
より詳細な知識については、 この記事 をチェックしてください。
ステートメントFruit x = new Fruit();
は、Fruitクラスに属する新しいオブジェクトを作成し、x
はそのオブジェクトへの参照を格納します。
より具体的には、コンピュータがこのステートメントを実行すると、Fruitタイプの新しいオブジェクトを保持するためにメモリが割り当てられます。コンストラクターを呼び出します。コンストラクターは、オブジェクトのインスタンス変数を初期化するだけでなく、他のタスクを実行することもできます。新しいオブジェクトへの参照は、式「newFruit()」の値として返されます。
最後に、代入ステートメントは参照を変数xに格納します。したがって、xを使用して新しいオブジェクトにアクセスできるようになりました。