한 데이터 타입을 다른 데이터 타입으로 변환 (Type Casting)
타입 캐스팅은 서로 다른 데이터 타입 간의 변환을 의미합니다. Java에서는 주로 두 가지 유형의 캐스팅이 존재합니다: 암시적 캐스팅과 명시적 캐스팅입니다.
1. 기본형(Primitive) 타입 캐스팅
1) 암시적 캐스팅 (Implicit Casting / Widening Conversion)
- 작은 타입 → 큰 타입으로 변환 시 자동으로 발생합니다.
- 데이터 손실 없이 안전하게 변환됩니다.
- 예시:
int
→double
,byte
→int
int n1 = 100;
double d1 = n1; // 암시적 캐스팅 (int → double)
위의 코드에서 int형 변수 n1의 값이 double형 변수 d1에 안전하게 변환됩니
2) 명시적 캐스팅 (Explicit Casting / Narrowing Conversion)
- 큰 타입 → 작은 타입으로 변환 시 강제로 수행해야 합니다.
- 데이터 손실 가능성이 있어
(타입)
을 명시해야 합니다.
- 예시:
double
→int
,long
→byte
double pi = 3.14;
int intPi = (int) pi; // 명시적 캐스팅 (double → int → 결과: 3)
위의 코드에서 double형 변수 pi의 소수점 이하 부분이 버려지고 int형 변수 intPi에 저장됩니다.
변수 캐스팅 예제 코드
아래는 Java에서의 캐스팅을 보여주는 간단한 프로그램입니다:
package ex01;
public class Var02 {
public static void main(String[] args) {
//1. 묵시적 형변환 (암시적 캐스팅) -> 업캐스팅
int n1 = 10;
double n2 = 10.5;
n2 = n1;
System.out.println(n2);
//2. 명시적 형변환 (강제로) -> 다운캐스팅
int n3 = 5;
double n4 = 5.5;
n3 = (int) n4;
System.out.println(n3);
}
}
이 프로그램에서 n1은 double로 암시적으로 변환되고, n4는 int로 명시적으로 변환됩니다.
Share article