- 자바 10이 발표되면서 변수를 사용할 때 문법적인 변화가 생겼습니다.
- 앞에서 배웠듯이, 자바는 변수를 사용할 때 사용할 자료형을 정확히 명시해야 합니다.
- 즉, 어떤 변수가 얼마만큼의 메모리를 사용하고, 어떤 방식으로 그 값을 지정할지 정하고 시작합니다.
- 하지만 자바 10부터는 자료형을 쓰지 않고도 변수를 사용할 수 있습니다.
- 그럼 자료형을 선언하지 않고 어떻게 사용하는지 보도록 하겠습니다.
1. var를 통한 변수 선언
- var는 variable을 줄여서 만든 키워드로 어떤 타입이든 알아서 변별해 줍니다.
- 자바스크립트 같은 언어는 var라는 키워드를 이미 사용하고 있었습니다.
1) 문법
- 문법은 그냥 하나입니다.
var 변수명 = 값;
- 이렇게 선언하는 것을 지역 변수 자료형 추론(local variable type interface)라고 합니다.
- 그러면 어떻게 자료형을 쓰지 않고 변수를 사용하는지 알아야겠죠?
- 변수에 대입되는 값을 보고 컴파일러가 추측하여 처리를 해줍니다.
- 이제 예제를 실습해 보겠습니다.
- 패키지(ch06_var)과 클래스(Ex01_Var.java)를 추가해 주세요.
- 기초적 작업을 모르는 분은 아래 주소를 클릭하고 보고 오세요.
https://ossam5.tistory.com/613
## 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을 처리해 주면 됩니다.
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에는 정수를 대입했는데 역시 에러가 발생합니다.
- 프로젝트에 에러가 발생되면 보기가 안 좋기 때문에 앞에 //로 한 줄 주석 처리했습니다.
- //를 없애면 아래와 같이 에러가 발생됩니다.
- //를 지우면 에러가 발생되는 것을 확인할 수 있습니다.
'컴퓨터언어 > JAVA(자바)' 카테고리의 다른 글
[JAVA강좌] 9강 자료 형변환 (0) | 2024.01.04 |
---|---|
[JAVA강좌] 8강 상수와 리터럴 (0) | 2024.01.04 |
[JAVA강좌] 6강 참조형변수 - String(문자열) (0) | 2023.12.28 |
[JAVA강좌] 5강 기본자료형 - 논리관련 - boolean (0) | 2023.12.27 |
[JAVA강좌] 4강 기본자료형 - 실수관련 - float, double (0) | 2023.12.27 |