為了接下來進行更好的分析,我先建立乙個demo類,用於後面的分析。
public
class
demo
}
接下來,我們用demo類來建立乙個物件。
demo demo=
newdemo()
;
這一條語句,其實包括了四個動作:
1)右邊的「new demo」,是以demo類為模板,在堆空間裡建立乙個demo物件。
2)末尾的()意味著,在物件建立後,立即呼叫demo類的建構函式,對剛生成的物件進行初始化。
3)左邊的「demo demo」建立了乙個demo類引用變數,它存放在棧空間中。也就是用來指向demo物件的物件引用。
4)「=」操作符使物件引用指向剛建立的那個demo物件。
當然這條語句我們也可以寫成:
demo demo;
//建立物件引用
demo=
/*將物件引用指向物件*/
newdemo()
;//建立物件
1)從物件引用出發:
乙個物件引用可以指向乙個物件
demo demo;//乙個物件引用
demo=
newdemo()
;//乙個物件引用指向乙個物件
也可以不指向物件。
demo demo;
//建立物件引用,但是沒有指向物件
2)從物件出發:
乙個物件可以被乙個物件引用引用
demo demo;
//建立物件引用
demo=
newdemo()
;//建立物件,並被乙個物件引用指向
也可以被多個物件引用同時引用
demo demo1,demo2,demo3;
//建立多個物件引用
demo1=
newdemo()
; demo2=demo1;
demo3=demo2;
//建立物件,並被多個物件引用指向
JAVA物件引用
等於運算子可以使用任意類到的運算元。基本資料型別的值可以比較。如果運算元同是 其它的物件型別 比如使用者建立的類 那麼計算結果取決於運算元是否引用相同的物件。考 慮 下下面的例子 string1 string2 在這個例子中,string1和string2必須引用同乙個字串而不是兩個不同的字串,即使...
物件和物件引用
每天都在變化,每天都在進步 基礎情況 a a new a a a 建立了個a 型別的引用a,此時指向null new a 在堆中建立了乙個類a的物件,返回其引用位址 將物件的位址給予引用 情景1a a new a 01 a b a 02 a null 03 此時b仍然有資料,因為 02 的時候,發生...
物件和物件引用
class vehicle 有了這個模板,就可以用它來建立物件 vehicle veh1 new vehicle 通常把這條語句的動作稱之為建立乙個物件,其實,它包含了四個動作。1 右邊的 new vehicle 是以vehicle類為模板,在堆空間裡建立乙個vehicle類物件 也簡稱為vehic...