int num1 = 15;
double num2 = 1.5;
정수형 변수인 num1과 실수형 변수인 num2가 있다.
num1의 값인 15를 num2에 넣을 수 있을까?
정답은 넣을 수 없다.
num1 = num2; // 실행 불가
자바는 자료형이 다른 변수를 대입할 수 없다.
하지만 num1의 값을 num2에 저장하는 것은 가능하다.
int형 변수보다 double형의 변수가 더 큰 존재기 때문에 num2에 num1을 대입하면 자바가 자동으로 형변환을 시켜준다.
num2 = num1; // 실행 가능 → num1이 num2에 저장되기 위해 double타입의 모양으로 바뀜.
그런데 num1에 num2를 대입하는 것이 아예 불가능한 것은 아니다.
형변환 원칙에 의해 안전한 형변환은 자바에서 자동으로 해주지만 수동으로 형변환을 해준다면 위험하긴 해도 가능하다.
num1 = (int)num2; // 실수형이었던 num2를 정수형 변수에 대입
System.out.println(num1); // 실수 부분인 0.5가 사라지고 정수 부분인 1만 출력된다.
위와 같은 방법을 이용해 수동으로 형변환 해줄 수 있다.