2011-12-17 76 views
2

我很困惑,因爲我是java的新手,在下面的一段代碼中創建了多少個對象和引用?在java中的對象和引用

MyClass t = new MyClass(); 
MyClass s = new MyClass(); 
MyClass v = s; 

請解釋回答:

2 Objects 
3 References 
+0

Psst:Java區分大小寫。 MYclass!= MyClass!= Myclass。 – 2011-12-17 18:10:35

回答

6

的圖像是價值超過千字:

enter image description here

+0

很好說.. :) – sum2000 2011-12-17 18:28:54

2

一個目的是一類,與new創建的實例。您使用兩次new,所以有兩個對象。 *

變量一般來說是一個參考。 **所以有三個參考文獻(tsv),儘管其中兩個碰巧指的是同一個對象。


*當然,MyClass本身可能會在內部創建更多的對象。

**除了在基本類型的情況下,像intfloat

+0

好吧..所以你的意思是說v和s是指向同一個mem位置。 – sum2000 2011-12-17 18:11:11

+0

@ sum2000:是的...... – 2011-12-17 18:11:47

+0

需要幫助。:) – sum2000 2011-12-17 18:12:56

2

2對象和

3參考

如果這樣做new要創建對象,以便有兩個新的如此簡單的兩個對象

並且如果你定義了

Foo a;// you have just created a reference

*注:new只是爲了創建對象的一種方式,它可以使用otherways太

+0

除了'new'之外還有其他什麼方法來創建一個對象(不包括'clone',它會在內部調用'new') – 2011-12-17 18:13:10

+0

@Oli http ://堆棧溢出。com/questions/95419/what-are-all-the-different-ways-to-create-an-object-in-java – 2011-12-17 18:14:06

2

所以,你要創建一個新的對象,並在t存儲到該對象的引用被創建。 s也一樣。然後,您將s引用分配給v(不創建新對象)。所以你有三個參考和兩個對象。

0

其實你的回答是錯誤的。它的周圍的其他方法:

2對象(在前兩行)

3的引用(T,S,V,V'和s共享的對象)