# 메소드 스코프 리뷰
#### CODE <a class='btn btn-default' href='/codes/74533'>Link</a>
```
public class MethodScope {
public static void main(String[] args) {
// main 메소드의 지역변수 score
public int score = 88;
System.out.printf("score = %d in main()\n", score);
// Record 클래스의 메소드 수행
Record.foo(score);
// main 메소드의 지역변수 score 출력
System.out.printf("score = %d in main()\n", score);
}
}
class Record {
// 클래스 메소드
public static void foo(int score) {
// printMinus10 메소드의 파라미터 score의 값을 10 감소
score -= 10;
// printMinus10 메소드의 파라미터 score의 값을 출력
System.out.printf("score = %d in foo()\n", score);
}
}
```
#### INPUT
```
```
#### OUPUT
```
/root/var/tmp/2022_10_02_06_57_27_edfcdd8c/MethodScope.java:4: error: illegal start of expression
public int score = 88;
^
1 error
```
아래 질문을 읽고 생각을 해보았습니다
메인 클래스에서 처음부터 public int score 로 선언하여 전역변수로 사용하면 클래스 메소드를 사용할 때도 같은 주소를 참조하여 질문자님이 원하신 대로 될 줄 알았는데
public int score라고 선언하는 것은 문법에 맞지 않다고 뜨네요 ..
public이 필드 앞에도 붙을 수 있는 것 아닌가요 ? static을 붙여보아도 에러가 뜨는데 왜 에러가 뜨는지 이해가 되지 않아 질문 드립니다 .. !
sehongpark님의 답변
질문 내용의 score 변수는 지역변수입니다.
따라서 public과 static을 적용할 수 없습니다.