형변환

growdeveloper ㅣ 2022. 6. 1. 19:15

▶형변환(캐스팅, casting) 이란? 

변수 또는 상수의 타입을 다른 타입으로 변환하는 것.

 

프로그램을 작성하다 보면 같은 타입뿐만 아니라 서로 다른 타입간의 연산을 수행해야하는 경우도 있다 .이럴 때는 연산을 수행하기 전에 타입을 일치시켜야 하는데, 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환(casting)'이라고 한다.

 

▶ 형변환 방법

형변환하고자 하는 변수나 리터럴의 앞에 변환하고 하는 타입을 괄호와 함께 붙여주기만 하면 된다.

(타입)피연산자

여기에 사용되는 괄호() 는 '캐스트 연산자'또는 '형변환 연산자'라고 하며, 형변환을 '캐스팅(casting) 이라고도 한다.'

double d= 85.4;
int score = (int)d // double타입의 변수 d를 int타입으로 형변환

두 번재 줄의 연산과정을 단계별로 살펴보면 다음과 같다.

int score = (int)d 
int score = (int)85.4;// double타입의 변수 d를 int타입으로 형변환
int score = 85;

형변환 연산자는 그저 피연산자의 값을 읽어서 지정된 타입으로 형변환하고 그 결과를 반환할 뿐이다. 그래서 피연산자인 변수 d의 값은 형변환 후에도 아무런 변화가 없다.

 

기본형(primitive type)에서 boolean을 제외한 나머지 타입들은 서로 형변환이 가능하다. 그리고 기본형과 참조형간의 형변환은 불가능 하다.

 

▶정수형간의 형변환

큰 타입에서 작은 타입으로의 변환, 예를 들어서 int타입(4 byte)의 값을 byte 타입(1 byte)으로 변환하는 경우는 크기의 차이만큼 잘려나간다, 그래서 경우에 따라 값손실(loss of data)이 발생할 수 있다.

class name {
	public static void main(String[] ags) {
    int i = 10;
    byte b= (byte);
    
    i = 300;
    b = (byte)i;
    System.out.printf("[int->byte] i=%d => b=%d%n",i,b );
    }
}

[int -> byte] i = 300 -> b = 44

'자바' 카테고리의 다른 글

기본형 매개변수와 참조형 매개변수  (0) 2022.08.11
JVM의 메모리구조  (0) 2022.06.01
변수의 타입  (0) 2022.05.08
변수(variable)  (0) 2022.05.08
자바의 특징  (0) 2022.05.08