모두CBT

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)로 접근해도 동작은 같지만, 보통은 클래스 이름으로 쓰는 것이 권장된다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.