22-1다음 Java 프로그램을 실행했을 때 출력되는 값을 적으시오.c… | 2022년 정보처리기사실기 1회차 기출문제 상세 페이지
3
22-1
다음 Java 프로그램을 실행했을 때 출력되는 값을 적으시오.
class Pair {
int p;
int q;
}
public class Main {
static void triple(Pair t) {
t.p *= 3;
}
static void absorb(Pair t) {
t.q += t.p;
}
static void reset(Pair t) {
t = new Pair();
t.p = 0;
}
public static void main(String[] args) {
Pair s = new Pair();
s.p = 15;
triple(s);
s.q = s.p - 5;
absorb(s);
reset(s);
System.out.print(s.p + s.q);
}
}해설
130
[해설]
메서드에는 객체의 참조값이 복사되어 전달되므로, 매개변수로 필드를 바꾸면 main의 s 객체가 직접 바뀐다.
- triple(s): p = 15 × 3 = 45
- s.q = 45 − 5 = 40
- absorb(s): q = 40 + 45 = 85
- reset(s): 매개변수 t가 새 객체를 가리키게 될 뿐, s는 그대로
reset 안에서 참조 자체를 바꾼 것은 호출한 쪽에 영향이 없다. 따라서 45 + 85 = 130이 출력된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.