프로그래밍의 기초(의사 코드 트레이스)

클래스 Counter는 인스턴스마다 정수형 멤버 변수 count(생성 시 0)를 가지며, 메서드 inc()는 자신의 count에 1을 더한다. 다음 프로그램을 실행한 후의 x의 값은?

Counter: c1 ← new Counter()
Counter: c2 ← new Counter()
c1.inc()
c1.inc()
c2.inc()
c1.inc()
integer: x ← c1.count × 10 + c2.count
  1. A13
  2. B31
  3. C44
정답과 해설 보기

정답: B. 31

객체 지향에서 new Counter()는 그때마다 새 인스턴스를 생성하므로, c1과 c2는 각각 별도의 count를 가집니다. c1.inc()는 c1의 count만 늘리므로 c1.count = 3, c2.count = 1입니다. x = 3 × 10 + 1 = 31이 됩니다. 멤버 변수의 값은 인스턴스마다 따로 유지됩니다.

이 분야 연습하기 분야로 돌아가기

프로그래밍의 기초(의사 코드 트레이스)의 다른 문제

  1. 클래스 Counter는 인스턴스마다 정수형 멤버 변수 count(생성 시 0)를 가지며, 메서드 inc()는 자신의 count에 1을 더한다. Counter형 변수에는 인스턴스 자체가 아니라 인스턴스에 대한 참조가 들어간다. 다음 프로그램을 실행한 후의 x의 값은?
  2. 다음 프로그램에서 x와 y의 값을 교환할 생각으로 대입문 2개를 작성했다. 실행한 후의 x와 y의 값의 조합은?
  3. 세 변수의 값을 차례로 보내는 다음 프로그램을 실행한 후의 a, b, c의 값의 조합은?
  4. x를 3배 하는 것을 반복하는 다음 프로그램을 실행한 후의 n의 값은?
  5. i를 2씩 늘리는 다음 for 문을 실행한 후의 s의 값은?