Language/Java
형변환
투런포
2021. 5. 8. 02:47
반응형
형변환(캐스팅, casting)이란?
- 모든 연산은 기본적으로 같은 타입의 피연산자간에만 수행할 수 있다.
- 서로 다른타입의 피연산자간의 연산을 수행해야하는 경우, 연산을 수행하기 전에 형변환을 통해 같은 타입으로 변환해주어야 한다.
형변환 방법
- 기본형과 참조형 모두 형변환이 가능하다.
- 기본형은 기본형으로만 참조형은 참조형으로만 형변환이 가능하다.
- 형변환하고자 하는 변수나 리터럴 앞에 변환하고자하는 타입을 괄호와 함께 붙여주면 된다.
/* (타입)피연산자 */
int score = (int)85.5; // double형 값을 int형으로 변환하여 score에 85가 저장된다.
byte b = (byte)score; // score에 저장된 값을 byte형으로 변환하여 byte에 저장한다.
- 여기에 사용되는 괄호는 '캐스팅 연산자', 또는 '형변환 연산자'라고 한다.
기본형의 형변환
- boolean을 제외한 나머지 7개의 기본형 간에는 서로 형변환이 가능하다.
변환 | 수식 | 결과 |
int -> char | (char)65 | 'A' |
char -> int | (int)'A' | 65 |
float -> int | (int)1.6f | 1 |
int -> float | (float)10 | 10.0f |
- 값의 표현범위가 작은 자료형에서 큰 자료형에서 큰 자료형의 변환은 값의 손실이 없으므로 캐스트 연산자는 생략가능하다. (JVM 내부에서 자동적으로 형변환)
- 값의 표현볌위가 큰 자료형에서 작은 자료형으로의 형변환에 캐스트 연산자를 사용하지 않으면 컴파일시 에러가 발생한다.