본문 바로가기
[JAVA]

[처음부터 다시 하는 JAVA] 변수 선언과 초기화

by 북방바다코끼리표범 2024. 1. 5.

처음부터 다시 하는 자바 공부는 인프런의 김영한 강사님의 강의를 참고해서 공부했다.

 

변수 선언과 초기화

  • 변수 선언
    변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있다.
  • 그리고 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다.
  • 쉽게 이야기해서 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여하는 것.

변수는 다음과 같이 하나씩 선언할 수도 있고
int a; 
int b;


다음과 같이 한번에 여러 변수를 선언할 수도 있다.
int c,d;

 

변수 초기화
변수를 선언하고, 선언한 변수에 처음으로 값을 저장하는 것을 변수 초기화라 한다. 


package variable; 

public class Var5 {
	public static void main(String[] args) { 
		//1. 변수 선언, 초기화 각각 따로
		int a;
        	a = 1;
		System.out.println(a);
        
		int b = 2; //2. 변수 선언과 초기화를 한번에 
		System.out.println(b);
        
		int c = 3, d = 4; //3. 여러 변수 선언과 초기화를 한번에 
		System.out.println(c);
		System.out.println(d);
	}
}

1.   변수의 선언과 초기화를 각각 따로 할 수 있다.
2.   변수를 선언하면서 동시에 초기화 할 수 있다.
      int b 를 사용해서 변수 b 를 만들고 그 다음에 바로 b = 2 를 사용해서 변수 b 에 값 2를 저장한다.
3.   여러 변수를 선언하면서 초기화도 동시에 진행할 수 있다.

 

변수는 초기화 해야한다
만약 변수를 초기화 하지 않고 사용하면 어떻게 될까?

package variable; 

public class Var6 {
	public static void main(String[] args) { 
		int a;
		System.out.println(a); //주석을 풀면 컴파일 에러 발생
    } 
}

 

초기화 하지 않은 변수 읽기

다음과 같은 컴파일 에러가 발생한다.

java: variable a might not have been initialized


해석해보면 변수가 초기화되지 않았다는 오류이다.


왜 이런 오류가 발생할까? 컴퓨터에서 메모리는 여러 시스템이 함께 사용하는 공간이다.

그래서 어떠한 값들이 계속 저장된다.

변수를 선언하면 메모리상의 어떤 공간을 차지하고 사용한다. 

그런데 그 공간에 기존에 어떤 값이 있었는지는 아무도 모르기 때문에 초기화를 하지 않으면 이상한 값이 출력될 수 있다. 이런 문제를 예방하기 위해 자바는 변수를 초기화 하도록 강제한다.

 

참고: 지금 학습하는 변수는 지역 변수(Local Variable)라고 하는데, 지역 변수는 개발자가 직접 초기화를 해주어 야 한다. 나중에 배울 클래스 변수와 인스턴스 변수는 자바가 자동으로 초기화를 진행해준다.

 

참고: 컴파일 에러는 자바 문법에 맞지 않았을 때 발생하는 에러이다. 컴파일 에러는 오류를 빨리, 그리고 명확하 게 찾을 수 있기 때문에 사실은 좋은 에러이다. 덕분에 빠르게 버그를 찾아서 고칠 수 있다.

 

에러를 확인하고 나면 꼭 다음과 같이 해당 라인 전체에 주석을 적용하자. 

그렇지 않으면 다른 예제를 실행할 때도 이 부분에 컴파일 에러가 발생할 수 있다.

//System.out.println(a); //주석을 풀면 컴파일 오류 발생