형변환(Type Casting)이란 변수의 타입을 변화시킨다는 의미로 크게 '암묵적 형변환'과 '명시적 형변환'으로 나눌 수 있다. 형 변환을 하게되면 특정 자료형의 값을 다른 자료형의 변수에 대입할 수 있게 된다. 단 , 논리형인 boolean값은 제외 된다.
암묵적 형변환이란 프로그램이 자동으로 형 변환을 해주는것을 의미한다.
예를 들어서
int i = 1;
char c = 'A';
일 때,
변수 i 에는 정수 1 이 들어있고, 변수 c 에는 문자인 'A'가 들어있는것을 알 수 있다.
하지만 이 때 우리가
int i = c
라고 작성한다면, 상식적으로는 i 라는 정수형 함수에 c 라는 문자형 함수가 들어갈 수 없다. 하지만 우리는 암묵적 형변환을 통해 i 안에 65라는 숫자가 들어가게 된다는 것을 알아야한다. (A는 아스키코드로 변환했을때 , 65 라는 숫자가 된다.)
이렇게 자료형이 다르더라도 컴파일러가 자동으로 자료형을 통일해 주는것을 암묵적 형 변환이라고 하며, 이 과정은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어 진다.
byte -> short -> char -> int -> long -> float -> double
명시적 형변환은 데이터의 손실을 감수하더라도 강제로 형변환을 시키는 것이다.
자료형 b = (변환할 자료형) a;
double d = 3.14D;
int i = d;라고 작성하면 d가 i 보다 더 큰 자료형을 가지고 있기 때문에 암묵적 형변환이 이루어지지 않는다. 그래서 우리는 double d = 3.14D;
int i = (int) d; //i의 값은 3 이렇게 작성을 해서 명시적형변환을 시켜주면 i 의값은 소수점 이하자리가 버려진 3이된다.