Object Oriented Programming
阿新 • • 發佈:2018-12-31
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?
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?