web-dev-qa-db-ja.com

javaのステートメントの解釈

私は次のステートメントの解釈について混乱しています

_Fruit x= new Fruit();
_

私の解釈では、new演算子とFruit();は、メモリ内のどこかに新しいオブジェクトを作成します。

xは、作成されたオブジェクトを指す参照変数です。_Fruit x_と書くと、どこを指さない参照変数が作成されることを意味するだけですか?

xがオブジェクトのメモリ位置を保持していると言うこともできますか?

2
user143252

あなたは絶対に正しいです。

new演算子は、Fruitタイプの新しいオブジェクト用にメモリ内のスペースを予約します。割り当て=は変数xに参照を割り当てます。

あなたが書くとしたらFruit y = x;、新しい参照のみを作成するため、yxの両方が引き続きメモリ上の単一の場所を指します。

より詳細な知識については、 この記事 をチェックしてください。

6
Alexus

ステートメントFruit x = new Fruit();は、Fruitクラスに属する新しいオブジェクトを作成し、xはそのオブジェクトへの参照を格納します。

より具体的には、コンピュータがこのステートメントを実行すると、Fruitタイプの新しいオブジェクトを保持するためにメモリが割り当てられます。コンストラクターを呼び出します。コンストラクターは、オブジェクトのインスタンス変数を初期化するだけでなく、他のタスクを実行することもできます。新しいオブジェクトへの参照は、式「newFruit()」の値として返されます。

最後に、代入ステートメントは参照を変数xに格納します。したがって、xを使用して新しいオブジェクトにアクセスできるようになりました。

0
Linux Le