static 키워드를 사용하고 int형 변수 staticVal을 하나 선언했습니다. 그리고 static한 메서드인 main 메서드에서 이 변수를 사용해봅시다.
이번에는 컴파일 에러가 발생하지 않습니다. static한 변수는 static하지 않은 메서드 내에서 사용해도 문제가 되지 않습니다. 그렇다면 main 메서드, 즉 static한 메서드에서 static하지 않은 변수를 사용하려면 어떻게 해야 할까요?
지금까지 작성한 대로 객체를 생성하고 사용하면 됩니다. 객체를 생성하는 방법은 이미 알죠? 생성해보겠습니다.
코드 일부
public static void main(String[] args) {
System.out.println(staticVal);
VariableScopeExam v1 = new VariableScopeExam();
System.out.println(v1.globalScope);
}
}
VariableScopeExam 클래스와 참조 변수 v1, 그리고 new 키워드와 클래스명을 넣어 객체를 생성했습니다. 사용할 때는 반드시 참조 변수와 필드명을 사용해야만 접근할 수 있습니다.
이때 반드시 기억해야 할 부분이 있습니다. 참조 변수 v1은 VariableScopeExam이라는 인스턴스가 생성될 때 globalScope 값을 저장하는 공간을 별개로 하나 가집니다.