Search

Item 57. 지역변수의 범위를 최소화하라

생성일
2023/08/07 13:48
챕터
9장 - 일반적인 프로그래밍 원칙

요약

지역 변수는 가장 처음 사용되는 곳에 선언하고, 선언과 동시에 초기화 하자.
메서드를 한 가지 기능에 집중하여 작게 유지하자.

지역변수 범위 최소화 하기

지역변수의 범위를 최소화하는 것은 기본적으로 이전의 클래스와 멤버의 접근 권한을 최소화하라와 취지가 비슷하다. 지역변수의 유효 범위를 줄이면 가독성과 유지보수성이 좋아지고 오류 가능성이 낮아진다.
지역변수의 범위를 줄이는 가장 강력한 방법은 가장 처음 쓰일 때 선언하기이다. 지역변수의 범위는 선언된 지점부터 그 지점을 포함한 블록이 끝날 때까지이므로, 해당 블록이 끝나면 자동으로 사라지게 된다.
거의 모든 지역변수는 선언과 동시에 초기화해야 한다. 초기화에 필요한 정보가 부족하다면 선언을 뒤로 미루어, 초기화가 이루어질 때 선언하자.
다만 try-catch문과 같이 try 내부에서 사용되는 변수들이 해당 블록이 끝난 이후에도 필요하다면, try 블록 앞에서 선언을 해야한다.
반복문에서의 초기화는 반복 변수(loop variable)의 범위가 반복문의 몸체와 for 키워드 몸체 사이의 괄호 안으로 제한된다.
for (Element e : c) { ... // e로 무언가 하기 } for (Iterator<Element> i = c.iterator(); i.hasNext(); ) { Element = i.next(); ... // e와 i로 무언가 하기 }
Java
복사
반면 while문에는 while문의 앞에서 변수를 선언하기 때문에 while 문이 끝나더라도 해당 지역변수의 유효범위가 끝나지 않아 오류가 발생할 수 있다.
제역변수 범위를 최소화하기 위해 메서드를 작게 유지하고 한가지 기능에 집중하자. 하나의 메서드에서 여러 기능을 처리한다면 한 기능과 관련된 지역변수가 다른 기능을 수행하는 코드에서 접근할 수 있기 때문이다.