2017-02-27 2 views
-7
Display dis; 

と正確にこれらの二つの文は何をすべきかJavaのオブジェクトを宣言する2つの方法の違いは何ですか?

Display dis = new Display(); 

? 私は両方を試しましたが、その違いを知ることはできません。 P.P. noobのコーダはここ

+0

最初のものでも初期化されていないとm.antkowicz @ 'null'なので値 –

+2

を持つフィールドとして宣言されている場合のみ、として宣言されていない場合ローカル変数。 – RealSkeptic

+4

これは本当に基本的な質問です。おそらく最初にJavaのチュートリアルや基礎を理解するためのいくつかのレッスンを行う必要があります。あなたは正しいアンワースをここに集めます、いくつかは本当に詳細です。しかし、チュートリアルやレッスンをするだけで、Javaの方法をより早く学ぶことができます。 –

答えて

0

は、それに割り当てられた実際のオブジェクトを持つように変数を宣言するのに十分ではありません次のように変数を宣言して、同時に新しいインスタンスへの参照を割り当てることができます。

Display dis = new Display(); 

(注:Javaで、大文字でクラス名を開始することが通例である)

+0

これは役に立ちます。ありがとう! –

0
Display dis; 

上記の文は、型Displayの参照の宣言です。ここにはオブジェクトが作成されていません。


Display dis = new Display(); 

この文は、型Displayのオブジェクトインスタンス化したものです。


2つのステートメントは全く同じではありません。 2番目のステートメントは、new演算子を使用してオブジェクトを作成し、disを使用してオブジェクトに対して操作を実行できるように、作成されたオブジェクトを参照disに割り当てます。例えば

:オブジェクトの作成がなければ

dis.show(); 

は、あなたが上記の操作を実行することはできません。


0

dis = new display();を実行しているときは、新しいDisplayオブジェクトがメモリに作成され、参照はdisになります。 Display disを実行しているときに、スタック内の場所が変数に予約されていますが、実際のオブジェクトではなくnullが存在します。

Display dis; // dis == null 

あなたは

dis = new Display(); // dis now contains a reference to a new Display instance 

あなたにオブジェクトをインスタンス化する必要があります:C++のような他のプログラミング言語とは異なり

関連する問題