아이티클래스

형변환

 

잘못 사용하면 Exception 발생 시키는 형 변환(casting)

 

형 변환은 대입 연산자 오른쪽의 식을 평가한 데이터형을 왼쪽의 변수에 대입하고자 할 때 왼쪽의 데이터형이 오른쪽의 형보다 작거나 클 경우 일어난다.

 

왼쪽의 데이터형이 오른쪽의 데이터형보다 작을 경우 명시적인 형 변환을 해야하며 이때 정보를 잃을 가능성도 있다.

 

왼쪽의 데이터형이 오른쪽의 데이터형보다 클경우 자동적으로 형 변환이 일어난다.

 

 

자동적인 형 변환이 일어나는 순서는 다음과 같다.

byte    →    short(char)    →    int    →    long    →    float    →    double

 

자동적인 형 변환은 데이터형의 유효 범위가 작은 범위에서 큰 범위로 대입될 때 일어난다.

 

boolean형은 다른 기본 유형으로 또는 다른 기본 유형에서 boolean형으로 변환될 수 없으니 주의하기 바란다.

 

int a = 10;
long b;
b = a;

int형 변수 a를 long형 변수 b에 넣는다.

long형의 유효범위가 int형보다 크기 때문에 자동적으로 형 변환이 일어나 대입된다.

 long > int 때문에 자동 형 변환 

 

 

long a = 10;
float b;
b = a;

long형 변수 a를 float형 변수 b에 넣는다.

float형이 유효범위가 long형보다 크기 때문에 자동적으로 형 변환이 일어나 대입된다.

float > long 때문에 자동 형 변환

 

 

long a = 10;
int b;
b = (int) a;

long형 변수 a를 인트형 변수 b에 넣는다.

long형의 유효범위가 int형보다 크기 때문에 명시적으로 형 변환을 해주어야 한다.

long > int 때문에 명시적 형 변환 (자동 형 변환이 안됨)

 

long a = 10;
int b;
b = a;  //자동으로 형변환이 안되기 때문에 Casting Exception 발생

int형 b에 long형 a를 형 변환없이 대입할 경우 오류 발생

 

 

float a = 10.0f;
int b;
b = (int) a;

float형 변수 a를 int형 변수 b에 넣는다.

float형의 유효범위가 int형보다 크기 때문에 명시적으로 형 변환을 해주어야 한다.

float형 a를 int로 형 변환없이 대입할 경우 오류 발생

 


실제로 java 프로그래밍을 하다보면 형 변환을 잘못 사용하거나 형 변환을 해주지 않아서 발생하는 오류들이 많다.

다행히 이클립스에서는 java 컴파일시 이렇게 잘못 입력한 코드들을 Exception 으로 표출 해준다.

개발자들은 Exception 난 부분을 확인 하면서 어디 부분의 코딩이 잘못 되었는지 확인하며 개발을 이어나가면 되겠다.

 

파비콘

제가 작성한 글이 도움이 되셨다면 ♥공감을 꾹 눌러주세요

 

도움이 필요한 내용이 있으시다면 댓글도 남겨주세요

 

 

'Java' 카테고리의 다른 글

예외 상황에는 finally문 사용해 보도록 하자  (0) 2020.04.29
자바 예외 상황 발생시 던지세요 - java throw문  (0) 2020.04.28
try/catch문  (1) 2020.04.02
예외(Exception)  (0) 2020.04.01
for문  (0) 2020.03.31

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band