-
프로그램을 작성하다 보면 같은 타입뿐만 아니라 서로 다른 타입 간의 연산을 수행해야 하는 경우가 있다. 이럴 때는 연산을 수행하기 전에 타입을 일치시켜야하는데, 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환(casting)'이라고 한다.
형변환 방법은 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주기만 하면된다.
(타입) 피연산자
여기에 사용되는 괄호( )는 '캐스트 연산자' 또는 '형변환 연산자'라고 하며, 형변환을 '캐스팅(casting)'이라고도 한다.
예를 들어 다음과 같은 코드가 있을 때,
double d = 87.4;
int score = (int)d;
두 번째 줄의 연산과정을 단계별로 살펴보면 다음과 같다.
int score = (int)d; --> int score = (int)87.4; --> int score = 87;
이 과정에서 알 수 있듯이, 형변환 연산자는 그저 피연산자의 값을 읽어서 지정된 타입으로 형변환하고 그 결과를 반환할 뿐이다. 그래서 피연산자인 변수 d의 값은 형변환 후에도 아무런 변화가 없다. 그래서 피연산자인 d의 값은 형변환 후에도 아무런 변화가 없다.
형변환의 다양한 예시
변환 수식 결과 int --> char (char)65 'A' char --> int (int)'A' 65 float --> int (int)1.7f 1 int -> float (float)37 37.0f 형변환을 하는 이유는 주로 서로 다른 두 타입을 일치시키기 위해서인데, 형변환을 생략하면 컴파일러가 알아서 자동적으로 형변환을 한다.
--> 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다.
[참고 도서 Java의 정석_기초편] http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492049&orderClick=LEa&Kc=