자바 메모리 구조가 이해가 안됩니다 알려주실분..

조회수 400회

제가 main메소드 밖에 static 메소드를 만들었습니다 그리고 그 메소드 안에 static변수를 하나 만들었는데 오류가 뜬겁니다... 제가 배운걸로는 static은 프로그램 실행전에 data영역에 저장된다고 알고있는데 static메소드 안에 또 static변수가 왜 안만들어 지는걸까요? 의미가 없는 코드인건 아는데 왜 안되는지를 모르겠습니다 진짜 몇일 동안 구글에서 찾아봤는데 도저히 답이 안나오네요.. 사실 지식인에도 물어봤는데 그냥 안된다라고만 말씀하고 왜 안되는지는 알려주지 않아서 여기에 물어봅니다 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 자바에서 static 키워드는 클래스의 멤버 앞에만 붙일 수 있습니다. 이게 규칙이기 때문에 이 규칙을 어기게 되면 오류가 발생합니다.

    질문하시것 처럼, 메소드 안의 변수에 static을 붙이는 것은 그 변수가 지역 변수이지 클래스의 멤버는 아니므로 규칙 위반입니다. 따라서 오류가 발생하고 안만들어 지는 것입니다. 위에서 말했듯이 static 키워드는 클래스의 멤버 앞에만 붙일 수 있다는 것이 규칙입니다.

    언어마다 규칙이 달라서 헷갈리실 수 있습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)