문제
함수 호출시 값을 전달받고, 함수 내에서 기본자료형 수정, 객체 값을 직접 수정, 새 객체를 생성하여 수정하는 프로그램입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요
프로그램의 실행순서 및 실행상태
1 public static void main( String[] args ) {
2 int argument1 = 1;
4 new Int( 2 );
P1b public Int( int value ) {
P1e }
3 Int argument2 =
6 new Int( 3 );
P1b public Int( int value ) {
P1e }
5 Int argument3 =
change() 호출전 argument1 = 1 argument2 = 2 argument3 = 3
7 change( argument1, argument2, argument3 );
| | main() | | | | |
| argument1 | 1 |
| argument2 | (obj01) | | value | 2 | Int(),toString() | (obj01) |
| argument3 | (obj02) | | value | 3 | Int(),toString() | (obj02) |
P2b public static void change( int parameter1, Int parameter2, Int parameter3 ) {
change() 변경전 parameter1 = 1 parameter2 = 2 parameter3 = 3
P21 parameter1 = 100;
P23 new Int( 200 );
P1b public Int( int value ) {
P1e }
P22 parameter2 =
P24 parameter3.value = 300;
change() 변경후 parameter1 = 100 parameter2 = 200 parameter3 = 300
P2e }
change() 호출후 argument1 = 1 argument2 = 2 argument3 = 300
8 }
| | main() | | | | |
| argument1 | 1 |
| argument2 | (obj01) | | value | 2 | Int(),toString() | (obj01) |
| argument3 | (obj02) | | value | 300 | Int(),toString() | (obj02) |
프로그램 코드
class Int
{
protected int value;
P1b public Int( int value ) {
this.value = value;
P1e }
public String toString() {
return this.value + " ";
}
}
public class PassByValueVsPassByReference
{
P2b public static void change( int parameter1, Int parameter2, Int parameter3 ) {
System.out.println( "change() 변경전 parameter1 = " + parameter1 + " parameter2 = " + parameter2 + " parameter3 = " + parameter3 );
P21 parameter1 = 100;
P22 parameter2 =
P23 new Int( 200 );
P24 parameter3.value = 300;
System.out.println( "change() 변경후 parameter1 = " + parameter1 + " parameter2 = " + parameter2 + " parameter3 = " + parameter3 );
P2e }
1 public static void main( String[] args ) {
2 int argument1 = 1;
3 Int argument2 =
4 new Int( 2 );
5 Int argument3 =
6 new Int( 3 );
System.out.println( "change() 호출전 argument1 = " + argument1 + " argument2 = " + argument2 + " argument3 = " + argument3 );
7 change( argument1, argument2, argument3 );
System.out.println( "change() 호출후 argument1 = " + argument1 + " argument2 = " + argument2 + " argument3 = " + argument3 );
8 }
}