공부/Java

자바 스코프(지역변수와 스코프)

Stair 2024. 8. 22. 15:53
반응형

변수는 선언한 위치에 따라 지역변수, 멤버변수로 분류된다.

 

지역 변수는 이름 그대로 특정 지역에서만 사용할 수 있는 변수라는 뜻이다. 그 특정 지역을 벗어나면 사용할 수 없다.

 

{} 안에 선언되고 여기 밖을 나가면 사라진다.

 

위와 같이 지역변수였던 x가 {} 밖을 나가자 에러가 나는 것을 볼 수 있다.

 

이렇게 변수의 접근 가능한 범위를 스코프(Scope)라고 한다. 참고로 Scope를 번역하면 '범위'라는 뜻이다.

 

 

스코프의 필요 이유는 다음과 같다.

 

 

 

위의 코드를 보자 temp는 if 안에서만 사용하는 변수이지만 main()코드 블록이 종료될 때 까지 메모리에 유지된다. 따라서 불필요한 메모리가 낭비된다.

또한 유지보수 시에 m은 물론이고 temp까지 계속 신경써야 하는 것이 문제이다. 스코프가 불필요하게 넓은 것이다.

실무에서는 코드가 매우 복잡한 경우가 많다.

 

 

 

if문 안으로 한정된 temp의 모습

 

scope의 존재 이유

1. 비효율적인 메모리 사용

2. 코드 복잡성 증가

 

정리

1. 변수는 꼭 필요한 범위로 한정해서 사용하는 것이 좋다. 변수의 스코프는 꼭 필요한 곳으로 한정해서 사용하자. 메모리를 효율적으로 사용하고 더 유지보수하기 좋은 코드를 만들 수 있다.

2. 좋은 프로그램은 무한한 자유가 있는 프로그램이 아니라 적절한 제약이 있는 프로그램이다.

반응형

'공부 > Java' 카테고리의 다른 글

자바 Scanner  (0) 2024.08.22
자바 형변환  (0) 2024.08.22
자바 for문  (0) 2024.08.22
자바 break, continue  (0) 2024.08.22
자바 do-while  (0) 2024.08.22