25-2아래 Java 프로그램을 실행했을 때 출력되는 내용을 적으시오.… | 2025년 정보처리기사실기 2회차 기출문제 상세 페이지
14
25-2
아래 Java 프로그램을 실행했을 때 출력되는 내용을 적으시오.
public class Main {
static void edit(String[] box, String word) {
box[1] = word + box[0];
word = "Q";
box = new String[] {"X", "Y"};
}
public static void main(String[] args) {
String[] box = {"M", "N"};
String word = "K";
edit(box, word);
System.out.print(box[0] + box[1] + word);
}
}해설
MKMK
[해설]
Java는 값에 의한 호출(Call by Value)이라 배열은 참조값이 복사되어 넘어간다. 그래서 원소를 바꾸면 main에 반영되지만, 매개변수 자체를 재할당한 것은 반영되지 않는다.
- box[1] = word + box[0] = K + M = KM이 되어 main의 box는 {M, KM}이 된다.
- word = Q는 지역 매개변수만 바꾸므로 main의 word는 K 그대로다.
- box = new String[]{…}는 매개변수가 새 배열을 가리킬 뿐 main의 box와 무관하다.
출력은 M + KM + K = MKMK다. 혼동 주의: 메서드 안에서 만든 새 배열의 X, Y는 main에 전혀 나타나지 않는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.