Nemaly Praveenさん:
どのように多くのオブジェクトが、このコードのために作成されますか?
class Main {
int num;
public static void gacemarks(Main m)
{
m.num += 10;
}
public static void main(String[] args) {
Main m1 = new Main();
Main m2 = m1;
Main m3 = new Main();
m2.num = 60;
gacemarks(m2);
System.out.println(m2);
}
}
答えは2です。しかし、私は3 M1が作成されました、m2は同じオブジェクト立方メートルを意味し、新たに作成され、呼び出しの後、m個のオブジェクトが生成されます。
ティムBiegeleisen:
あなたのコードのコンテキストでは、私は明示的に作成されている参照のみ2つのオブジェクトがした線であり、new
オペレータが表示されます。
Main m1 = new Main();
Main m3 = new Main();
ここでは、各ラインで起こっているの内訳は次のとおりです。
Main m1 = new Main(); // create new Main object 'm1'
Main m2 = m1; // assign 'm2' to reference 'm1' (no new object)
Main m3 = new Main(); // create new Main object 'm3'
m2.num = 60; // assign a field in 'm2' (no new object)
gacemarks(m2); // repeatedly increment the 'm2.num' field (no new object)
System.out.println(m2); // print 'm2' (no new object)