Item57. 지역변수의 범위를 최소화하라!
Intro
- 아이템 15에서 얘기한 ‘클래스와 멤버의 접근 권한을 최소화하라’의 취지와 비슷한 맥락이다.
- 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고, 오류 가능성은 낮아진다.
지역 변수 범위 최소화
가장 처음 쓰일 때 선언하기
- C와 같이 역사가 있는 언어들 같은 경우 지역변수를 코드 블록 첫 머리에 선언하는 경우가 많다.
- 자바에서는 문장을 선언할 수 있는 곳이면 어디서든 가능하니 이러한 습관은 지양하는 것이 좋다.
- 미리 선언부터 해두면 코드가 어수선해질 수 있고, 가독성이 떨어지기 때문이다.
- 지역변수의 범위는 코드 블록의 안쪽이니 잘 고려하여 사용해야 한다. -> 사용이 끝났는데도 할당이 해제되지 않아 가비지 컬렉터가 수거해가지 못하는 문제 발생하지 않도록 하자.
선언과 동시에 초기화하기
초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야 한다.
try-catch
문은 예외다.변수를 초기화하는 표현식에서 검사 예외를 던질 가능성이 있다면 try 블록 안에서 초기화해야 한다.
한편, 변수 값을 try 블록 바깥에서도 사용하고자 한다면 try 블록 앞에서 선언해야 한다.
1 2 3 4 5 6 7
int myBook; try { myBook = Book.getId(); } catch (Exception e) { // Exception }
for문 사용 권장
- 반복 변수의 값을 반복문이 종료된 이후에도 사용하는 것이 아닌 이상, while 문보다는 for 문을 사용하자.
- 마찬가지로 반복에서 인덱스를 사용할 일이 있다면, for-each 보다는 for문을 사용하는 것이 변수 선언을 줄이고, 범위를 최소화하는 일이다.
- for 문은 while 문보다 짧아서 가독성이 더 좋다.
메서드를 작게 유지하고, 한 가지 기능에 집중하기
- 한 메서드에서 여러 가지 기능을 처리한다면, 그중 한 기능과만 관련된 지역변수라도 다른 기능을 수행하는 코드에서 접근이 가능해진다.
- 메서드를 기능별로 쪼개 해결하자.
Comments powered by Disqus.