🎨 Programming/JAVA

[JAVA] 4. 형변환(Casting)

ryang x2 2020. 6. 12. 03:03
728x90
반응형

#형변환(Casting) 

프로그래머가 그 순간의 자료형을 다른 타입으로 변환하는 것을 의미한다.

 

1. 형변환 규칙

- 기본형과 참조형 사이에는 형변환을 할 수 없다. 기본형은 기본형으로만 참조형은 참조형으로만 형변환이 가능하다.

- 기본형을 Object 클래스나 wrapper 클래스 같은 참조형으로 변환할 수 있다.

- 범위가 큰 자료형에서 작은 자료형으로 형변환시 값 손실이 발생할 수 있다. 

- 범위가 작은형에서 큰 자료형으로 변환시 손실이 없으므로 Casting 연산자를 사용 하지 않아도 된다.

 

2. 형변환 방법

- (타입) 피연산자

 

3. 자바 컴파일러가 자동으로 수행하는 타입 변환은 언제나 데이터의 손실이 최소화되는 방향으로 이루어집니다.

따라서 자바에서는 타입의 표현 범위에 따라 다음과 같은 방향으로 자동 타입 변환이 이루어집니다.

 

* byte형 → short형 → int형 → long형 → float형 → double형

                   char형 ↗

 

 

자동 형변환 : 작은 범위에서 큰 범위로 이동할 때는 자동으로 형변환된다. 

byte var1 = 10;     // 1byte 범위 : -128 ~ 127
int var2 = var1;
System.out.println(var2);

범위가 큰 곳에서 작은 곳으로 바뀔 때, 가능한 범위더라도 () 가로안에 타입을 지정해주면 강제로 형변환이 일어난다.

int var3 = 127;
byte var4 = (byte)var3;
System.out.println(var4);

예시2

강제 형변환 결과적으로 데이터가 변질된다. 

int var5 = 128;
byte var6 = (byte)var5;
System.out.println(var6);

예시3

char는 2byte int는 4byte 이므로 자동 형변환

char var7 = 'A';
int var8 = var7;    
System.out.println(var8);

예시4

정수 / 소수 -> 소수  and  정수 / 정수 -> 정수

int var9 = 10;
double var10 = 3;
int var11 = 3;
System.out.println(var9 / var10);  
System.out.println(var9 / var11); 

예시5

 

728x90
반응형