1. 형변환(type conversion) : 데이터 타입을 변경하는 것이다.
2. 형변환을 이유 :
예를 들어 byte형(1byte 자료형)과 int형(4byte 자료형)의 연산을 한다고 생각해보자.
데이터 타입이 달라서 그 크기가 다르기 때문에 하나의 자료형으로 통일한 후 연산을 해야한다.
이때 형변환이 이루어진다.
3. 형변환의 종류
- 묵시적 형변환 : 크기가 작은 자료형에서 큰 자료형으로 형변환, 업캐스팅이라고도 한다.
묵시적 형변환의 경우 데이터의 손실이 없으므로 자동으로 형변환된다.
ex) byte b = 10;
int i = b;
-> int형 변수 i에 그것보다 작은 타입의 변수 b를 초기화해서
자동적으로 묵시적 형변환이 이루어졌다.
- 명시적 형변환 : 크기가 큰 자료형에서 작은 자료형으로 형변환
명시적 형변환의 경우 작은 데이터 타입에 큰 데이터가 들어가서
강제적으로 형을 바꾸기 위한 명시적 형변환을 해주어야한다.
ex) int i = 10;
byte b = (byte)i;
-> byte형 변수 b에 그것보다 큰 타입의 변수 i를 초기화해서
강제적으로 명시적 형변환을 해주었다.
4. 참고
- boolean을 제외한 나머지 기초자료형은 서로 형변환이 가능하다.
- 기초자료형과 참조자료형은 서로 형변환을 할 수 없다.
- 형변환은 데이터타입이 다른 경우 그 데이터타입을 똑같이 만들어주기 위해서 사용된다.
- 자바에서 부모와 자식간의 관계에도 형변환이 가능하다.(이를 업캐스팅, 다운캐스팅이라고 한다.)