What will be printed out in the 6 System.out.println statements in the following program?
(You need to include the circled index numbers in your answer)
public class PrintStrings{
public static void main(String[] args){
String aString="Hi";
ResultString strInMain = new ResultString();
strInMain.str="Hello";
changeData(strInMain, aString);
System.out.println("In main, aString: "+aString); //1
System.out.println("In main, strInMain: "+ strInMain.str); //2
}
public static void changeData(ResultString result, String aStr) {
ResultString strInMethod = new ResultString();
aStr = aStr+", how are you?";
System.out.println("In method, aStr: "+aStr); //3
result.str = result.str + ", how are you?";
System.out.println("In method, result (1): "+result.str); //4
result = strInMethod ;
strInMethod.str= "Good Day";
System.out.println("In method, result (2): "+result.str); //5
result.str=result.str+" Good Day";
System.out.println("In method, strInMethod: "+strInMethod.str); //6
}
}
class ResultString {
public String str;
public String str2;
}
首先,先执行语句changeData(strInMain,aString);
那么就会得到第一句,In method,aStr:Hi,how are you?
之后继续执行得到第二句,"In method, result(1):Hello,how are you?
之后就会得到第三句,In method, result (2): Good Day
之后得到第四句,In method, strInMethod: Good Day Good Day
之后返回去执行上面的语句,得到第五句,In main, aString: Hi
再之后得到最后一句,In main, strInMain: Hello, how are you?
最后的结果Result:
In method, aStr: Hi, how are you?
扫描二维码关注公众号,回复:
4725105 查看本文章
In method, result (1): Hello, how are you?
In method, result (2): Good Day
In method, strInMethod: Good Day Good Day
In main, aString: Hi
In main, strInMain: Hello, how are you?