더북(TheBook)

localScope 변수는 ScopeTest라는 메서드 내에서 선언했으니 당연히 사용할 수 있겠죠.

 

그뿐만 아니라 매개변수로 선언된 value라는 값도 사용하는 데 문제가 없습니다. 매개변수로 사용된 value는 블록 바깥쪽에 있지만, 메서드 선언부에 위치하므로 사용 범위는 해당 메서드 블록 내라고 보면 됩니다.

 

그러면 이 변수들이 다른 메서드 내에서도 사용할 수 있는지 메서드를 하나 더 정의해 테스트하겠습니다.

package javaStudy;

public class VariableScopeExam {
    int globalScope = 10;
    
    public void scopeTest(int value) {
        int localScope = 20;
        
        System.out.println(globalScope);
        System.out.println(localScope);
        System.out.println(value);
    }
    
    public void scopeTest2(int value2) {
        System.out.println(globalScope);
        System.out.println(localScope); // 컴파일 오류가 발생합니다.
        System.out.println(value);      // 컴파일 오류가 발생합니다.
    }

    public static void main(String[] args) {
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.