작성자 : 김가영
2022.07.21
지역변수의 유효범위를 최소로 줄이면 생기는 이점
- 코드 가독성과 유지보수성이 높아진다.
- 오류 가능성이 낮아진다.
-
미리 변수부터 선언하는 코드는 어수선하고 가독성이 떨어진다.
-
변수가 실제로 사용되는 시점에는 무슨 타입, 무슨 값으로 초기화 했는지 기억이 나지 않을 수 있다.
-
범위를 제대로 제한해두지 않으면 변수가 너무 앞서 선언되거나 사용 후에도 할당이 반환되지 않는다.
→ GC가 해당 변수를 수거하지 않으니, 예상치 못한 결과를 초래할 수 있다.
-
초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야한다.
-
예외 :
try-catch-finally초기화 과정에서 검사 예외(Checked Exception)를 던질 가능성이 있으면 try 블록 안에서 초기화를 해야한다.
public class Animal { public static void main(String[] args) { int num; try { num = Account.getBalance(); } catch (IOException e) { // 예외처리 } } }
-
-
변수 값을 try 바깥에서도 사용해야 한다면 try블록 바로 앞에 변수를 선언해야 한다.
- 전통 for문이던 new for-each건 반복문에서는 반복 변수의 범위가 반복문의 몸체, for 키워드와 몸체 사이 괄호 안으로 제한된다.
- 반복자, 즉 인덱스(index)를 사용해야하는 경우에는 for-each보다는 전통적인 for문이 낫다.
- 반복 변수를 반복문 종료 후에도 사용해야 하는 경우를 제외하고는 while문 보다 for문을 사용하는 것이 낫다.
- 한 메서드에서 여러 가지 기능을 처리한다면 그중 한 기능과만 관련된 지역변수라도 다른 기능을 수행하는 코드에서 접근할 수 있다.
- 메서드를 한 가지 기능만 하도록 쪼개는 것이 좋다.
- 변수는 가장 처음 쓰일 때 선언하자
- 모든 지역변수는 선언과 동시에 초기화 하라
- for문을 고려해보자
- 메서드를 작게 유지하고 한 가지 기능에 집중하라