자바 변수 선언과 초기화
프로그래밍에서 변수를 선언하고 초기화하는 과정은 필수적입니다. 이를 통해 데이터를 저장할 메모리 공간을 확보하고, 해당 공간에 접근하기 위한 이름을 부여할 수 있습니다. 이번 글에서는 자바(Java)에서 변수를 선언하고 초기화하는 방법을 살펴보겠습니다.
변수 선언
변수를 선언하면 컴퓨터의 메모리에서 데이터를 저장할 공간이 만들어집니다. 이 공간은 변수 이름을 통해 접근할 수 있습니다. 변수는 아래와 같이 하나씩 선언할 수 있습니다.
int a;
int b;
- 또는 한 번에 여러 변수를 선언할 수도 있습니다.
int c, d;
- 이렇게 변수를 선언하면 해당 변수를 사용할 수 있는 메모리 공간이 할당되지만, 아직 값이 저장되지는 않았습니다.
변수 초기화
변수를 선언한 후, 해당 변수에 값을 저장하는 첫 번째 과정을 초기화라고 합니다. 변수를 초기화하는 방법에는 여러 가지가 있습니다.
1. 변수 선언과 초기화를 각각 따로 하는 방법
변수를 먼저 선언하고 나중에 값을 할당할 수 있습니다.
int a;
a = 1;
System.out.println(a);
- 이 방식은 가독성을 높일 수 있으며, 값이 나중에 결정되는 경우에 유용합니다.
2. 변수 선언과 초기화를 한 번에 하는 방법
변수를 선언하면서 동시에 초기화할 수도 있습니다.
int b = 2;
System.out.println(b);
- 이 방법은 변수를 선언하는 즉시 값을 할당해야 할 때 사용하면 편리합니다.
3. 여러 변수를 한 번에 선언하고 초기화하는 방법
여러 변수를 동시에 선언하고 초기화할 수도 있습니다.
int c = 3, d = 4;
System.out.println(c);
System.out.println(d);
- 이와 같이 코드를 간결하게 작성할 수 있으며, 동시에 여러 변수에 값을 할당해야 할 때 유용합니다.
변수 초기화의 중요성
변수를 선언했지만 초기화하지 않으면 어떻게 될까요? 자바에서는 초기화되지 않은 변수를 사용하려 하면 컴파일 에러가 발생합니다. 예를 들어, 다음 코드를 보겠습니다.
int a;
System.out.println(a); // 주석을 풀면 컴파일 에러 발생
- 위 코드에서 int a를 선언했지만, 값을 할당하지 않은 채로 출력하려고 시도하면 컴파일 에러가 발생합니다.
java: variable a might not have been initialized
- 이 에러는 변수가 초기화되지 않았음을 나타냅니다. 왜 이런 문제가 발생할까요? 이유는 메모리에 이전에 저장된 값이 무엇인지 알 수 없기 때문입니다. 초기화를 하지 않으면 메모리의 남아 있는 값이 그대로 출력되거나, 엉뚱한 결과가 나올 수 있습니다. 이를 방지하기 위해 자바는 변수를 반드시 초기화하도록 강제합니다.
지역 변수와 초기화
지금까지 다룬 변수들은 모두 지역 변수(Local Variable)입니다. 지역 변수는 반드시 개발자가 초기화를 해주어야 합니다. 나중에 배우게 될 클래스 변수와 인스턴스 변수는 자바가 자동으로 초기화를 해주지만, 지역 변수는 그렇지 않습니다.
컴파일 에러는 도움이 된다
컴파일 에러는 프로그램이 자바 문법에 맞지 않았을 때 발생합니다. 하지만 이는 오히려 개발자에게 유용한 에러입니다. 컴파일 에러를 통해 오류를 빠르게, 명확하게 확인할 수 있으며, 이를 수정함으로써 프로그램을 더 안정적으로 만들 수 있습니다.
에러가 발생하면 문제된 부분에 주석을 적용해 다음 번 실행 시 같은 문제가 발생하지 않도록 관리하는 것이 좋습니다.
//System.out.println(a); // 주석을 풀면 컴파일 에러 발생
- 위와 같이 에러를 해결한 후에는 해당 라인에 주석을 달아 다른 예제를 실행할 때도 동일한 컴파일 에러가 발생하지 않도록 방지합시다.
요약
- 변수를 선언하면 메모리 공간이 할당되고, 이름을 통해 해당 공간에 접근할 수 있습니다.
- 변수를 초기화하지 않으면 자바에서는 컴파일 에러가 발생합니다.
- 지역 변수는 반드시 개발자가 직접 초기화를 해야 합니다.
참고
'Back-End > Java' 카테고리의 다른 글
자바의 산술 연산자 이해하기 (0) | 2024.09.19 |
---|---|
자바 변수 - 문제와 풀이 예제 (0) | 2024.09.18 |
자바 변수 타입 (1) | 2024.09.17 |
자바 변수의 기초 (0) | 2024.09.12 |
J2EE 패턴이란? (0) | 2022.08.12 |