Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)에서 지역 변수의 기본값은 무엇일까?

자바에서 지역 변수(Local Variable)메서드(method), 코드 블록(code block), 생성자(constructor) 등 내부에 선언할 수 있습니다. 프로그램의 실행 흐름이 메서드, 코드 블록, 생성자 등에 진입하는 순간 지역 변수가 생성되며, 해당 영역을 벗어나는 순간 지역 변수는 소멸됩니다.

중요한 점은 자바의 지역 변수에는 기본값(default value)이 존재하지 않는다는 것입니다. 즉, 지역 변수를 사용하기 전에 반드시 선언과 동시에 값을 할당(초기화)해야 하며, 그렇지 않으면 컴파일 에러가 발생합니다. 이는 멤버 변수(인스턴스 변수, 정적 변수)가 자료형별 기본값으로 자동 초기화되는 것과 대비되는 특징입니다.

예제 1: 초기화하지 않은 지역 변수

public class LocalVariableTest {
    public void print() {
        int num;
        System.out.println("The number is : " + num);
    }
    public static void main(String args[]) {
        LocalVariableTest obj = new LocalVariableTest();
        obj.print();
    }
}

위 프로그램에서 지역 변수 num은 값을 초기화하지 않고 사용하고 있습니다. 따라서 컴파일 시 다음과 같은 에러 메시지가 출력됩니다.

실행 결과

LocalVariableTest.java:4: error: variable num might not have been initialized
 System.out.println("The number is : " + num);
 ^
1 error

에러 메시지인 "variable num might not have been initialized"(변수 num이 초기화되지 않았을 수 있음)는 지역 변수를 초기화 없이 사용하려 했기 때문에 발생한 것입니다.

예제 2: 초기화한 지역 변수

public class LocalVariableTest {
    public void print() {
        int num = 100;
        System.out.println("The number is : " + num);
    }
    public static void main(String args[]) {
        LocalVariableTest obj = new LocalVariableTest();
        obj.print();
    }
}

이번에는 지역 변수 num을 선언하면서 값 100으로 초기화했습니다.

실행 결과

The number is : 100

정리

  • 지역 변수는 메서드, 코드 블록, 생성자 내부에서 선언됩니다.
  • 프로그램 제어가 해당 영역에 진입하면 생성되고, 벗어나면 소멸합니다.
  • 지역 변수는 기본값이 없으므로 반드시 사용 전에 초기화해야 합니다.
  • 초기화하지 않고 사용하면 컴파일 에러가 발생합니다.