View
반응형
클래스와 멤버의 접근 권한을 최소화하면 얻을 수 있는 이점이 많듯, 지역변수의 유효 범위를 최소로 줄이면 코드 가동성과 유지보수성을 높일 수 있고 오류 가능성을 낮출 수 있다.
지역변수 범위 최소화하기
1. 가장 처음 쓰일 때 선언하기
가장 강력한 기법은 역시 '가장 처음 쓰일 때 선언하기'이다. 변수를 미리 선언해두면 코드가 어수선해지고 가독성이 떨어진다. 또한, 의도한 범위 외에서 그 변수를 사용하면 오류 가능성이 높아진다.
2. 선언과 동시에 초기화
초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야 한다. 단, try-catch 구문에서의 이 규칙은 예외이다.
3. 메서드를 작게 유지하고 한 가지 기능에 집중하기
하나의 메서드가 여러가지 역할을 가지는 경우 그중 한 기능과만 관련된 지역변수라도 다른 기능을 수행하는 코드에서 접근할 수 있다. 하나의 메서드는 한 가지 일을 잘할 수 있도록 만들면 이런 문제를 해결할 수 있다.
반복문의 변수 범위
컬렉션 순회 권장 관용구
for (Element e : c) {
...
}
반복자를 사용해야 하는 경우 전통적인 for문을 사용하자.
for (Iterator<Element> i = c.iterator(); i.hasNext();) {
Element e = i.next();
... // e와 i를 사용한다.
}
for문과 while문
반복 변수의 값을 반복문이 종료된 뒤에도 써야되는 상황이라면 while문을 사용해야 한다. 하지만 이런 경우가 아니라면 대부분 for문을 쓰는 편이 낫다.
while문의 경우 지역변수의 유효범위에 대한 실수가 있어도 오류가 겉으로 드러나지 않는 경우가 있다. for문은 유효 범위가 for문 범위와 일치하여 이러한 오류를 컴파일 타임에 잡아준다.
반응형
'BackEnd > 이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] Item59 - 라이브러리를 익히고 사용하라 (0) | 2021.08.01 |
---|---|
[이펙티브 자바] Item58 - 전통적인 for 문보다는 for-each 문을 사용하라 (0) | 2021.07.30 |
[이펙티브 자바] Item56 - 공개된 API 요소에는 항상 문서화 주석을 작성하라 (0) | 2021.07.24 |
[이펙티브 자바] Item55 - 옵셔널 반환은 신중히 하라 (0) | 2021.07.21 |
[이펙티브 자바] Item54 - null이 아닌, 빈 컬렉션이나 배열을 반환하라 (0) | 2021.07.20 |