1. 程式人生 > >Object Oriented Programming

Object Oriented Programming

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?