[Java 기초] 변수의 사용가능 범위는 어디까지일까?
안녕하세요~
이번 시간에는 변수의 종류에 따라 달라지는 범위에 대해 알아보려고 하는데요.
바로 예시코드부터 보시죠!
중괄호 영역에 따라 달라지는 변수의 개념
Math 객체를 활용해 다양한 변수를 출력하는 코드.
오늘의 핵심 키워드
1. 클래스 영역에 선언되는 전역변수는 선언된 영역 전체에서 사용 가능하다.
2. 조건문, 반복문, 메소드 안에 선언되는 지역변수는 그 내부영역에서만 사용 가능하다.
3. 앞에 static이 붙는 정적변수는 가장 먼저 메모리가 올라가 모든 객체가 공용으로 사용한다. ※ 객체 생성 필요 없이 사용 가능하다.
이클립스 실행화면
** m1 객체
전역변수 num = 10
check메소드 num = 20
main메소드에서 호출할 때 넣어준 매개변수 = 10
전역변수 num에 매개변수를 더해준 값 = 30
** m2 객체
전역변수 num = 10
check메소드 num = 20
main메소드에서 호출할 때 넣어준 매개변수 = 20
전역변수 num에 매개변수를 더해준 값 = 30
m1의 정적변수 number = 100
m2의 정적변수 number = 100
-- 정적변수 number를 30으로 바꾸고 나서
m1의 정적변수 number = 30
m2의 정적변수 number = 30
정적변수 number는 메모리에 고정적으로 존재해 모든 객체가 공유하여 하나의 객체에서 값을 변경해도 모든 객체가 동일하게 변경되는 것을 확인할 수 있습니다.
참고로 정적변수 number는 객체 생성 필요 없이 사용가능하기 때문에 예시코드처럼 앞에 클래스 이름만 붙여서 Math.number = 30 ; 으로도 사용할 수 있습니다.
꼭 봐야되는 마무리 꿀팁!
- 전체 영역에서 자주 사용하는 변수는 전역변수로 선언하기!
- 모든 객체에서 공통으로 사용하는 변수는 정적변수로 선언하기!
- 한정적으로 반복문, 조건문, 메소드 안에서만 사용하는 변수는 지역변수로 선언하기!
▲영상으로 한번 더 복습하세요 :)