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

這兩種在java中聲明對象的方式有什麼區別?

Display dis = new Display(); 

究竟這兩個語句呢? 我已經嘗試過他們兩個,但似乎無法知道區別。 P.S.這裏

+0

第一個甚至沒有初始化,有'null'值 –

+2

@ m.antkowicz只有聲明爲字段,如果不聲明爲局部變量。 – RealSkeptic

+4

這是一個非常基本的問題。你應該首先做一個java教程或者一些課程來理解基礎。你會在這裏得到一堆正確的聲音,有些是非常詳細的。但是,只要做一個教程或一堂課,你就可以更快地學習java方法。 –

回答

0

與像C++等編程語言,它是不夠的聲明一個變量來給它分配一個實際的對象:

Display dis; // dis == null 

您需要實例化一個對象與

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

你可以聲明變量並同時爲新實例分配引用,如果您願意:

Display dis = new Display(); 

(注:在Java中,習慣上用大寫字母開頭的類名)

+0

這很有幫助。謝謝! –

0
Display dis; 

小白編碼器上面的語句是Display類型的引用的聲明。這裏沒有創建對象。


Display dis = new Display(); 

這種說法是Display類型的對象實例。


這兩條語句根本不相同。第二條語句使用new運算符創建一個對象,並將創建的對象分配給引用dis,以便您可以使用dis對該對象執行操作。

例如:

dis.show(); 

沒有創作,你將無法執行上述操作的對象。


希望這有助於!

0

當您在做dis = new display();時,會在內存中創建一個新的Display對象,並將其引用放在dis之下。當你正在做Display dis堆棧中的一個地方是爲變量保留的,但是那裏有null而不是「真實」的對象。

相關問題