본문 바로가기
Programming/Java

[자바/Java] var 변수 선언

by 코딩하는 랄로 2023. 9. 28.
728x90

var로 변수 선언

var는 자바 10에서 부터 도입된 keyword로 변수를 선언할 때 사용하는 키워드이다. 일반적으로(자바 9 이하) 자바에서 변수를 선언할 때 변수의 type을 지정하여 선언한다. 

 

예를 들어 정수형 변수 num을 선언하기 위해서는 다음과 같이 선언하여야 한다.

int num;   //정수형 타입의 변수 num 선언

 

자바 10부터는 위와 같이 그대로 변수를 선언할 수 있지만 다음과 같이 var를 이용해서도 선언할 수 있다.

// 타입이 지정되지 않은 num 선언 : 컴파일시 num 변수를 int형 타입으로 추론하여 지정
var num = 10;

 

var로 선언할 시에 변수의 타입을 생략할 수 있고 이 때 생략된 변수의 타입은 컴파일러가 컴파일시 타입을 추론하여 변수에 타입을 지정해준다.

 

 

 

var 사용시 제약사항

var keyword는 일반 변수 선언과는 달리 몇가지 제약사항을 가진다. 기본적으로 var는 컴파일시 타입을 추론하여 지정하기 때문에 컴파일러가 타입을 추론할 수 없는 애매한 상황일 때 컴파일 에러가 발생한다.

 

예를 들어, 다음과 같이

var num;    //초기화 없이 var 변수 선언

초기화 없이 var 변수를 선언할 경우, 컴파일러가 num 변수에 타입을 추론할 수 없기 때문에 컴파일 에러가 발생한다.

 

또한, NULL로 초기화 할 시, 어떤 객체든 null이 할당될 수 있기 때문에 컴파일러가 null로 선언된 var 변수의 타입을 추론할 수 없어 컴파일 에러가 발생한다.

var list = null;   // compile error

 

또 다른 제약사항으로는, 위와 같은 이유로 배열과 lambda에 사용할 수 없다.

var arr = {1, 2, 3};  //compile error
var f = () => {};     //compile error

 

또한 var는 지역 변수에만 사용할 수 있다.

class JavaVar {
	pulbic var num = 1; //compile error
}

 

728x90