형변환(Casting)
1. 형변환이란?
- 변수의 자료형(Data type)이 변환되는 것을 의미한다.
- 특정 자료형의 값을 다른 자료형의 변수에 대입할 수 있다.
- Data에 대한 손실 유무에 따라 암묵적 형변환과 명시적 형변환의 두 종류가 있다.
2. 암묵적 형변환
- 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우, java 컴파일러가 자료형을 통일한다.
이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.
- 묵시적 형변환이라고도 부른다.
int a = 100; //정수형
float b = a; //
정수형a를 실수형b에 대입한다.
이처럼 Data type이 다르지만 data 손실없이 잘 담겨졌다면 암묵적 형변환이라고 한다.
- 암묵적 형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미한다.
더큰 방향으로의 형변환이기에 upcasting이라고도 한다.
3. 명시적 형변환
-
데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태이다.
자료형 b = (변환할 자료형)a;
-
실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.
double a = 3.14d;
int b = (int)a; //3
-
명시적 형변환은 downcasting이라고도 한다.
5-4. 서로 다른 형태에 따른 연산
- 서로 다른 자료형에 대한 연산은 자료형의 범위가 큰 타입으로 자바가 upcasting 한 후에 계산하지만, 사람이 직접 downcasting하여 자바에게 계산시킬 수도 있다.
public static void main(String[] args) {
double a = 10.5D;
float b = 20.5F ;
double d = a+b;
float f = (float)a+b;
}