0
SurveyData newSurvey = new SurveyData(2);
SurveyData oldSurvey = new SurveyData();
SurveyData currentSurvey = oldSurvey;
oldSurvey = new SurveyData(5);       
newSurvey.setAges(0,45);
newSurvey.printAges();
4

2 回答 2

5

假设SurveyData's 的构造函数和在这些对象上调用的其他方法不会在其中创建额外的对象,答案是三个。对操作员的每次调用new都会创建一个新对象。赋值SurveyData currentSurvey = oldSurvey不会创建一个新对象,即使它是一个新的变量声明

于 2020-09-18T18:56:40.200 回答
3
SurveyData newSurvey = new SurveyData(2);

这条线创建了一个新对象,并newSurvey引用了一个对象。

SurveyData oldSurvey = new SurveyData();

这条线创建了一个新对象,并oldSurvey引用了一个对象。

SurveyData currentSurvey = oldSurvey;

此行不创建对象。currentSurvey 参考指向 oldSurvey 指向的同一对象。

oldSurvey = new SurveyData(5);       

这一行创建一个新对象。任何 oldSurvey 参考都指向这个新对象。

您可以在下图中看到此过程。

我变了

于 2020-09-18T20:10:03.440 回答