2011-12-17 8 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。 –

答えて

6

ピクチャであります以上の千の言葉に値する:

enter image description here

+0

よく言っています:) – sum2000

2

オブジェクトがnewで作成され、クラスのインスタンスです。 newを2回使用するため、2つのオブジェクトがあります。 *

変数は、一般的に言及して、リファレンスです。 **したがって、3つの参照(t,s,v)がありますが、そのうち2つは同じオブジェクトを参照します。


※もちろん、MyClassは、内部でオブジェクトをさらに作成することがあります。あなたがしなければプリミティブ型の場合を除き

**intfloatなど

+0

ok ..だから、vとsは同じmem場所への参照です。 – sum2000

+0

@ sum2000:はい.. –

+0

thnksのヘルプです:) – sum2000

2

2オブジェクトと

3参照

ようnewそんなにオブジェクトを作成しています新しい2つの単純な2つのオブジェクト

Foo a;// you have just created a reference

*注:newはオブジェクトを作成するための唯一の方法である、あなたが新しいオブジェクトを作成し、tにそのオブジェクトへの参照を格納している

+0

'new'以外のオブジェクトを作成する他の方法はありますか?(' new'を内部的に 'new'と呼ぶものは含みません) –

+0

@Oli http ://スタックオーバーフロー。com/questions/95419/what-are-all-the-all-the-different-ways-to-create-object-in-java –

2

すぎotherwaysを使用して作成することができます。 sでも同じです。次に、sへの参照をv(新しいオブジェクトを作成しない)に割り当てます。したがって、3つの参照と2つのオブジェクトがあります。

0

実際、あなたの答えは間違っています。これは、周りの他の方法です:(最初の2行)

2オブジェクト

3参照(T、S、V、Vおよびs共有オブジェクト)

関連する問題