본문 바로가기

컴퓨터언어/JAVA(자바)

[JAVA강좌] 7강 자료형 없이 선언 - var - 자바10부터 생긴 문법

728x90
반응형

 

 

 

 

- 자바 10이 발표되면서 변수를 사용할 때 문법적인 변화가 생겼습니다.

- 앞에서 배웠듯이, 자바는 변수를 사용할 때 사용할 자료형을 정확히 명시해야 합니다.

- 즉, 어떤 변수가 얼마만큼의 메모리를 사용하고, 어떤 방식으로 그 값을 지정할지 정하고 시작합니다.

- 하지만 자바 10부터는 자료형을 쓰지 않고도 변수를 사용할 수 있습니다.

- 그럼 자료형을 선언하지 않고 어떻게 사용하는지 보도록 하겠습니다.

 

 

 

 

 

 

 

1. var를 통한 변수 선언


- var는 variable을 줄여서 만든 키워드로 어떤 타입이든 알아서 변별해 줍니다.

- 자바스크립트 같은 언어는 var라는 키워드를 이미 사용하고 있었습니다. 

 

 

1) 문법

- 문법은 그냥 하나입니다.

var 변수명 = 값;

 

- 이렇게 선언하는 것을 지역 변수 자료형 추론(local variable type interface)라고 합니다.

- 그러면 어떻게 자료형을 쓰지 않고 변수를 사용하는지 알아야겠죠?

- 변수에 대입되는 값을 보고 컴파일러가 추측하여 처리를 해줍니다. 

 

- 이제 예제를 실습해 보겠습니다. 

- 패키지(ch06_var)과 클래스(Ex01_Var.java)를 추가해 주세요. 

- 기초적 작업을 모르는 분은 아래 주소를 클릭하고 보고 오세요.

https://ossam5.tistory.com/613

 

[JAVA강좌] 1강 JAVA변수와 자료형

1. 프로젝트 패키지 생성 및 자바 파일 생성 - 앞으로의 강좌에서는 패키지 생성 및 자바 파일 생성하는 것을 보여드리진 않겠습니다. - 지금 잘 확인해 주시기 바랍니다. 1) 프로젝트 패키지 생성

ossam5.tistory.com

 

 

 

 

## var 선언 실습1 - Ex01_Var.java

package ch07_var;

public class Ex01_Var {

	public static void main(String[] args) {
		var num1 = 10;			//int num1 = 10;
		var num2 = 10.25;		//double num2 = 10.25;
		var str = "안녕하세요";		//String str = "안녕하세요";
		var ch = 'A';			//char ch = 'A';
		var bool = true;		//boolean bool = true;

		System.out.println(num1);
		System.out.println(num2);
		System.out.println(str);
		System.out.println(ch);
		System.out.println(bool);
	}

}

 

- 모든 변수는 var 변수명 = 값;으로 선언했습니다.

- 이때 값을 보고 컴파일러가 알아서 자료형으로 변환을 합니다.

- 옆에 주석으로 어떻게 변환되는지 적어 봤습니다.

 

 

## var 선언 결과1 - Ex01_Var.java

- 에러 없이 결과도 잘 나오는 것을 확인할 수 있습니다.

- 결과는 [Ctrl]+[F11]을 통해 run을 처리해 주면 됩니다.

 

 

 

 

 

 

 

 

728x90
반응형

 

 

 

 

 

 

 

 

 

 

2)  var 사용 시 주의사항

- 한번 선언한 자료형 변수를 다른 자료형으로 사용할 수 없습니다.

- 처음 값을 대입할 때, 정수로 했다면 문자열로 값을 대입할 수 없습니다.

- var로 자료형 없이 변수를 선언하는 것은 지역변수만 가능합니다.

- 이건 추후 변수의 범위에 대한 수업을 듣고 이해하시는 편이 좋습니다. 

 

 

 

## var 선언 실습2 - Ex02_VarError.java

package ch07_var;

public class Ex02_VarError {

	public static void main(String[] args) {
		var num = 10;
		var str = "안녕";
		
		//num = "Hello";
		//str = 100;
	}
}

 

- num은 초기값에 정수를 대입하고, str은 문자열을 대입했습니다.

- 아래 코드에서 num에 문자열을 대입했는데, 에러가 발생합니다.

- str에는 정수를 대입했는데 역시 에러가 발생합니다.

- 프로젝트에 에러가 발생되면 보기가 안 좋기 때문에 앞에 //로 한 줄 주석 처리했습니다. 

- //를 없애면 아래와 같이 에러가 발생됩니다.

- //를 지우면 에러가 발생되는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

 

 

728x90
반응형