자바 타입변환이란
하나의 타입이 다른 타입으로 변경되는 것을 타입변환 이라고 합니다.
형변환 혹은 타입변환으로 불립니다.
암시적 형변환 혹은 암시적 타입변환 = 묵시적 형변환 혹은 묵시적 타입변환
명시적 형변환 혹은 명시적 타입변환
타입변환 방법
자바에서 다른 타입끼리의 연산은 모두 같은 타입으로 만든 후에 수행하게 됩니다.
또한 작은 타입에서 큰 타입으로의 변환은 가능하나, 큰 타입에서 작은 타입으로 변환은 불가능 합니다.
이유는 double 형을 int 형에 표현하려고 하면서 데이터의 손실이 발생하기 때문에 컴파일러에서 오류를 발생하게 되는 것입니다.
1
2
3
4
5
6
7
8
9
10
11
|
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 1;
double b = 3.5;
double c = a + b; // 정상
int d = a + b; // 오류 : int + double 은 double 타입이며, 이 double 타입을 int 에 저장할 수 없습니다.
}
}
|
cs |
타입변환의 종류
암시적 혹은 묵시적 타입 변환 (자동 타입 변환)
암시적 타입 변환이란 연산 시 컴파일로가 자동으로 수행하는 타입 변환을 가리키며
사용자가 강제로 타입 변환을 하지 않는 경우를 의미합니다.
예를들면 아래와 같은 경우 int + double 값을 새로운 double 값으로 넣고 있습니다.
이때 오류없이 수행되는데 자바에서 컴파일시 int 를 암시적으로 double 로 변경하기 때문입니다.
1
2
3
4
5
6
7
8
9
10
11
|
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 1;
double b = 3.5;
double c = a + b;
System.out.println(c);
}
}
|
cs |
명시적 타입 변환 (강제 타입 변환)
연산 시 사용자가 강제적으로 타입을 변경해 주는 것을 의미합니다.
이 때는 변환시키고자 하는 데이터 앞에 ( 타입 ) 을 작성합니다.
이 작성을 타입캐스트 연산자 라고 합니다.
예를들면 아래처럼 계산에 모두 타입을 강제적으로 지정해 주게 되면 어떻게 될까요?
8줄 (int) b 에서는 3.5 값에서 int 형으로 치환되며 0.5 가 버림되게 되어 4 가 저장됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 1;
double b = 3.5;
double c = (int) a + (int) b;
double d = (int) a + (double) b;
double e = (double) a + (double) b;
System.out.println(c + ", " + d + ", " + e);
}
}
|
cs |
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 Wrapper 클래스와 오토박싱 언박싱 (0) | 2021.05.09 |
---|---|
[JAVA] 자바 재귀호출과 팩토리얼 함수 (0) | 2021.05.07 |
[JAVA] 자바와 PostgreSQL JDBC 연동방법 (2) | 2021.04.26 |
[JAVA] 자바와 SQL Server JDBC 연동방법 (0) | 2021.04.13 |
[JAVA] 자바 인터페이스와 추상클래스 차이 (0) | 2021.04.01 |