형변환에 대해 알아볼거야
형변환은 간단하게 말해서 타입을 바꾸는 행동
이라고 할 수 있어.
class Main {
public static void main(String[] args) {
int i = 10;
double d = i; // 여기선 자동형변환 허용, 왜냐? 안전하니까
i = (int)d; // 여기선 자동형변환 불가능, 왜냐? 문제가 발생할 가능성이 있으니까.
System.out.println(i);
}
}
이 코드로 예시를 들어보면 i에는 값이 10이 들어가있는걸 볼 수 있을거야.
그리고 double이라는 실수 타입을 가진 d 를 만들고 i를 집어 넣을거야.
그럼 어떻게 될까? i는 정수타입이고 d는 실수타입이니까 절대 안될거야!!라고 생각할 수 있어.
하지만 가능해!! 왜냐하면 실수는 정수에 포함되는 형태잖아. 정수안에 실수가 들어있는거지.
그래서 만약 d를 출력하면 10.0이라고 값이 나오게 될거야. 그런데 의문점이 들 수도 있어.
나는 아무것도 안했는데 저절로 10에서 10.0이 되었어요! 라고 생각할 수 있잖아? 이걸 자동형변환이라고 해! 자바가 판단했을때 해도 아무문제없어~ 하면 자동으로 해주는거야.
그럼 여기서 d는 지금 실수인데 i에 집어넣고 싶으면 어떻게 하면 될까?? 지금 i랑d랑 타입이 안맞으니까 서로 맞춰줘야 할 필요가 있어!!
그래서 위 코드와 같이
i = (int)d;
이런 형태로 i에 값을 넣는거야 ! 이제 뭔가 형변환이 뭔지 알겠지?