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) {
}
}