형변환?
형변환이란 자료형을 바꾸는 개념입니다.
대입연산자(=)를 기준으로 왼쪽 데이터타입과 오른쪽 타입을 맞추어야 합니다. 즉 같은 자료형에 대해서만 오른쪽 값을 왼쪽에 대입 할 수 있습니다. 이는 연산을 할 때도 형변환이 이루어져야 합니다.
형변환 종류
1. 자동형변환 : 자동으로 형변환 되는것을 의미합니다.
즉, 내가 직접 형변환을 할 필요가 없으며, 작은 크기형에서 큰 크기형으로 변하는 것을 의미합니다
2. 강제형변환 : 자동으로 형변환이 되는것이 어려워 직접 진행하여야 합니다.
큰 크기형에서 작은크기형으로 변하는것을 의미합니다.
(주의) : 강제형변환은 값의 손실이 발생 할 수 있다.
자동형변환의 예시)
int형에서 double형으로 바뀌는 경우를 생각해봅시다. double형이 더 큰 범위를 가지므로 당연히 자동형변환이 이루어진다. 혹은 int형과 double형을 더하여 double형으로 값을 받을 경우 역시 자동형변환이 이루어진다.
역시 int형에서 long형으로 변환하여도 자동형변환이 된다.
그렇다고 무조건적으로 형변환이 byte가 크다고 자동형변환이 이루어지는것은 아니다.
long은 8byte이고 float4byte라서 강제형변환이 이루어져야 할것 같지만, 사실 float형이 실수범위이고, long은 정수범위이기 때문에 float에서 더 넓은 범위로 표현된다고 보아야한다. 역시 자동형변환의 예이다.
또 다른 케이스는 char형과 int형이다. 아스키코드에 의해서 양방향 형변환이 가능하다. 첫번째 값으로 65의 아스키코드 값은 A이다. 역시 두번째 값은 B이다. 마지막 값 역시도 int로 계산되기 때문에 (int)'김'과 '김'+(char)2의 값은 2차이가 난다.
강제형변환의 예시)
강제형변환은 위처럼 왼쪽과 오른쪽을 맞추기 위해서 double데이터 자료형이 float보다 크므로 d2 앞에 (float)을 붙여주어야 한다. 두번째 예제 역시 double에서 int를 맞추기 위해 (int)로 맞추어 주었습니다. 중요한 것은 값을 연산하게 되면 두번째 예제 처럼 0.3의 데이터 손실이 있습니다.
이번 시간에서의 형변환은 기본 자료형에서 값을 맞추기 위해서 사용되고 있지만, 다형성을 배우게 되면 업캐스팅 다운캐스팅을 할때 부모 클래스와 자식 클래스와의 관계를 통해서 왼쪽과 오른쪽의 자료형을 맞춰주기 위해서 형변환을 하게 됩니다. 더 자세한것은 다형성 파트에서 다루겠습니다.
'자바-자린이의 도전기' 카테고리의 다른 글
연산자 한방에 끝내기! (0) | 2022.03.16 |
---|---|
Printf문 (0) | 2022.03.14 |
Scanner 클래스로 입력 받기 (0) | 2022.03.13 |
검은화면 좋아하시나요? (0) | 2022.03.12 |
변수란? (0) | 2022.03.10 |
댓글
이 글 공유하기
다른 글
-
연산자 한방에 끝내기!
연산자 한방에 끝내기!
2022.03.16 -
Printf문
Printf문
2022.03.14 -
Scanner 클래스로 입력 받기
Scanner 클래스로 입력 받기
2022.03.13 -
검은화면 좋아하시나요?
검은화면 좋아하시나요?
2022.03.12