- 캐스팅?
문법에 맞게 형 변환을 시켜주는 것을 캐스팅이라 한다.
어떤 상황엔 오류가 나고 어떤상황에는 오류가 안나는데 왜 그럴까?
- int안에 double

num에 10의 정수를 담았다. 이걸 double에 넣을때 자연스럽게 들어간다
double은 8byte로 저장하고 int는 4byte로 저장하는데 왜 자연스럽게 들어가냐?
간단하게 생각하면 큰 상자(double)에 작은상자 (int) 를 넣는다고 문제가 생기는건 아니다
저장하는 공간의 차이가 문제가 없다면 타입을 맞춰야 한다.
어떻게 출력되는지 보자

int는 실수를 담을 수 없지만, 형 변환이 일어나며 10.0으로 저장된 모습이다.
오류는 났지만 별다른 조치없이 실행되는 것을 '묵시적 형변환'이라 한다
그럼 반대로 넣어보자
-double 안에 int

int는 4byte 정수를 담고 double은 8byte 실수를 담는다.
타입도 다를 뿐더러 저장공간의 크기 차이도 난다.
그럼 타입만 다르고 저장공간의 크기가 같으면 어떨까?

타입이 달라도 묵시적 형변환이 일어나지 않는다.
그럼 어떻게 집어넣을 수 있느냐

int 라는 박스에 double을 넣기엔 int가 너무 작다.
그래서 int박스 크기에 맞게 잘라 넣어라는 명령을 내렸다.

int 타입엔 실수를 담을 수 없으므로 20이 출력되는 모습이다.
이렇게 코드로 직접 변환시켜야 하는것을 명시적 형변환 이라 한다.
'캠퍼스 > Java' 카테고리의 다른 글
| 19. for (0) | 2022.07.28 |
|---|---|
| 18. 구구단 만들기 (1) (0) | 2022.07.28 |
| 16. 증감식 (0) | 2022.07.28 |
| 15. 논리 연산자 (0) | 2022.07.28 |
| 14. 변수의 선언과 초기화 (0) | 2022.07.28 |