안녕하세요 길벗수험서 운영팀입니다.
클래스 구조를 가진 인스턴스 변수인 myVal은 포인터 변수를 인수로 보낸것과 동일하게 메소드에서 변경된 값을 리턴하지 않아도 main()까지 변경된 값이 유지됩니다.
때문에 change 메소드에서 굳이 return문을 쓰지 않고, 그리고 메인 메소드에서 호출 시 리턴값을 받는 'myVal ='없이 다음과 같이 코드를 바꿔도 된다는 의미입니다.
public static void main(String[ ] args) {
AAclass myVal = new AAclass( );
myVal.i = 10;
myVal.j = 20;
change(myVal);
System.out.printf("i=%d, j=%d\n", myVal.i, myVal.j);
}
static void change(AAclass myVal) {
int temp;
temp = myVal.i;
myVal.i = myVal.j;
myVal.j = temp;
}
행복한 하루되세요 :)
-
관리자2020-09-04 20:58:41
안녕하세요 길벗수험서 운영팀입니다.
클래스 구조를 가진 인스턴스 변수인 myVal은 포인터 변수를 인수로 보낸것과 동일하게 메소드에서 변경된 값을 리턴하지 않아도 main()까지 변경된 값이 유지됩니다.
때문에 change 메소드에서 굳이 return문을 쓰지 않고, 그리고 메인 메소드에서 호출 시 리턴값을 받는 'myVal ='없이 다음과 같이 코드를 바꿔도 된다는 의미입니다.
public static void main(String[ ] args) {
AAclass myVal = new AAclass( );
myVal.i = 10;
myVal.j = 20;
change(myVal);
System.out.printf("i=%d, j=%d\n", myVal.i, myVal.j);
}
static void change(AAclass myVal) {
int temp;
temp = myVal.i;
myVal.i = myVal.j;
myVal.j = temp;
}
행복한 하루되세요 :)