23-1아래 Java 프로그램을 실행했을 때 출력되는 내용을 줄 순서대… | 2023년 정보처리기사실기 1회차 기출문제 상세 페이지
15
23-1
아래 Java 프로그램을 실행했을 때 출력되는 내용을 줄 순서대로 적으시오.
class Counter {
public int v = 7;
static int shared = 0;
}
public class Main {
public static void main(String[] args) {
int v;
v = 3;
Counter.shared = v * 4;
Counter c = new Counter();
System.out.println(c.shared--);
System.out.println(Counter.shared);
System.out.println(v);
System.out.print(c.v + Counter.shared);
}
}해설
12
11
3
18
[해설]
static 필드 shared는 객체마다 따로 생기지 않고 클래스 전체가 하나를 공유한다. 그래서 Counter.shared와 c.shared는 같은 변수다.
- Counter.shared = 3 * 4 = 12
- println(c.shared--): 후위 연산이라 12를 먼저 출력한 뒤 11로 줄인다.
- println(Counter.shared): 이미 줄어든 11
- println(v): main의 지역 변수 v는 3이다. 인스턴스 필드 v(7)와는 이름만 같은 별개 변수다.
- print(c.v + Counter.shared): 7 + 11 = 18
static 필드를 참조 변수(c.shared)로 접근해도 동작은 같지만, 보통은 클래스 이름으로 쓰는 것이 권장된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.