안녕하세요~
오늘 하루도 하루 공부를 마치고 간단하게 정리할 겸 글을 끄적끄적!!
대표 사진
사진 설명을 입력하세요.
오늘은 기본형 타입을 갖는 변수 및 리터럴 타입을 다른 타입으로 변환하는 것에 대해서 공부했습니다.!!
실제로 이와 같은 내용은 앞으로 다형성이라는 강력한 힘을 갖고 있는 객체지향 언어에 참조형 변수를 공부하는데도 밑바탕이 될 것이라 생각됩니다.
그럼 이제 형변환은 어떻게 할 수 있는지 한번 정리해보겠습니다.
아차!! 그 전에 간단하게 기본형 변수 타입에는 어떤 것들이 있는지 아래 표를 참조해봤습니다.
대표 사진
자!! 그럼 이제 타입은 어떤 것들이 있는지도 살펴봤으니 본격적으로 형 변환은 어떻게 할 수 있는지 한번 보도록 합시다!!
먼저 살펴볼 것은 자동 형변환(=promotion)입니다. 다른 말로는 암묵적 형 변환이라고도 불릴 수 있다는 점..!
자 그럼 백문이 불여일견이라고 어떻게 하는 것인지 직접 보도록 하겠습니다.
대표사진 삭제
자동 형 변환 예시
간단하게 정수형으로 표현할 수 있는 최대의 값을 저장하고 여기에 1만 더해져도 오버플로우가 발생하여 값이 표현할 수 있는
가장 작은 값인 음수로 바뀌었습니다.
그러나 bb의 결과를 보면 1이 더해져도 값이 잘 나오는 것을 확인할 수 있습니다.
정리하면 상대적으로 더 작은 형 타입을 더 큰 타입을 갖는 변수에 할당해주었을 경우 자동으로
더 큰 타입으로 변환되는 것을 확인할 수 있습니다.
그럼 반대의 경우는 어떨까요??
전송 중...
사진 설명을 입력하세요.
실행!!
앗!!!! 형 변환 에러가 발생했네요...ㅜ
이처럼 상대적으로 큰 타입을 갖는 변수를 작은 타입에 할당할 수가 없습니다..
그럼 나는 큰 놈이 될 수 없는 건가...ㅜ..ㅜ
그래서 바로 다음으로 살펴볼 것이 강제 형 타입 변환인 cating입니다.
어떻게 하는 것이냐?
전송 중...
강제 형 변환 예시
그냥 앞에 형 타입 하나 넣어줬을 뿐인데 가능해지는 것을 볼 수 있습니다. 이게 바로 강제로 형을 맞춰주는 cating입니다.
그런데, 여기서 한 가지 눈치가 있다면 발견할 수 있는 것이 있죠??
aa 변수에는 실수형 타입(double)으로 표현할 수 있는 최대 값을 받았기 최대치를 출력하고 있죠?
그런데 동일한 값을 bb에 넣었지만 다른 값으로 나타나는 것을 발견할 수 있죠?
여기서 casting은 어떤 것인가 한번 생각해볼 수 있는 Time이었습니다.
Casting을 하는 것은 말 그대로 변환하고자 하는 타입만큼 byte 공간을 할당하고 그 범위 내에서 표현 가능한 수는 담지만
그 이상이 되어 공간이 더 필요할 경우 가차 없이 그냥 버리고 표현할 수 있는 범위로만 표현해 버리는 것이죠.
사실상, 정밀한 값이나 어머어마하게 큰 값을 다뤄야 할 때를 제외하고는 크게 지장은 없다만
내가 만약 필요할 경우는 이러한 부분도 좀 생각해봐야겠죠?
여기까지 오늘 배운 내용들을 실습도 해보고 정리도 해보면서 하루 공부 끝!!!
전송 중...
사진 설명을 입력하세요.
'P.L > Java' 카테고리의 다른 글
java.util.Arrays 클래스를 활용한 배열복사 (0) | 2023.01.19 |
---|---|
String 클래스 - repeat() (0) | 2022.12.20 |
스트림(Stream) 개요 (0) | 2022.06.06 |
기본형 데이터 타입 (0) | 2020.08.02 |
콘솔에 입`출력 하는 방법? (0) | 2020.08.02 |