Question 12 : 변수의 적용범위

Given:
13. public class Pass {
14.      public static void main(String []args) {
15.           int x = 5;
16.           Pass p = new Pass();
17.           p.doStuff(x);
18.           System.out.print(” main x = “+ x);
19.      }
20.
21.      void doStuff(int x) {
22.           System.out.print(” doStuff x = “+ x++);
23.      }
24. }

What is the result?

A. Compilation fails.
B. An exception is thrown at runtime.
C. doStuffx = 6 main x = 6
D. doStuffx = 5 main x = 5
E. doStuffx = 5 main x = 6
F. doStuffx = 6 main x = 5


[HeadFirst Java - p.119]
# '인스턴스 변수'는 클래스 내에서 선언됩니다. 메소드 내에서 선언되는 것이 아닙니다.
# '지역 변수(local variable)'는 메소드 내에서 선언됩니다.
# '지역변수'는 사용하기 전에 반드시 초기화해야 합니다. 지역변수는 기본값이 없습니다. 따라서 지역 변수를 초기화하기 전에 사용하려고 하면 컴파일 과정에서 오류가 납니다.

[HeadFirst Java - p.270]
# 메소드 안에서 선언한 것을 지역 변수라고 부르는데, 메소드 매개변수도 지역 변수에 포함됩니다. 지역 변수는 임시 변수며 메소드가 스택에 들어있는 동안만 살아있습니다.
# 클래스 내에서 선언한 것을 인스턴스 변수라고 부르는데, 메소드 내에서 선언한 것은 인스턴스 변수에 포함되지 않습니다. 인스턴스 변수는 그 변수가 속한 객체 안에서 삽니다.

Answer: D
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q014. 열거형  (0) 2008.04.03
Q013. import static  (0) 2008.04.03
Q011. 문법 오류  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30

+ Recent posts