728x90
타입 캐스팅(Type Casting)이란?
서로 다른 자료형 간의 변환을 말합니다.
예: int → double, double → int
왜 필요할까요?
- 자료형이 다른 값을 함께 사용할 때 오류를 방지하기 위해
- 더 작은 타입 → 큰 타입은 안전하지만
- 큰 타입 → 작은 타입은 데이터 손실이 발생할 수 있어서 조심해야 해요!
1. 자동 형변환 (묵시적 변환)
작은 타입 → 큰 타입으로 자동 변환됨 (손실 없음)
작은 타입 | → | 큰 타입 |
int | → | long, float, double |
char | → | int |
float | → | double |
예제
int num = 10;
double result = num; // 자동 형변환
System.out.println(result); // 10.0
정수 int가 자동으로 double로 바뀜
2. 강제 형변환 (명시적 변환)
큰 타입 → 작은 타입으로 변환할 때, 데이터 손실을 감수하고 명시적으로 변환
문법
자료형 변수명 = (자료형) 변환할값;
예제
double pi = 3.14;
int num = (int) pi;
System.out.println(num); // 3 (소수점 제거됨)
double을 int로 강제 변환 → 소수점 사라짐!
비교 실습 예제
public class CastingExample {
public static void main(String[] args) {
int i = 100;
double d = i; // 자동 형변환 (int → double)
System.out.println("자동 형변환 결과: " + d);
double pi = 3.14159;
int n = (int) pi; // 강제 형변환 (double → int)
System.out.println("강제 형변환 결과: " + n);
}
}
출력 결과:
자동 형변환 결과: 100.0
강제 형변환 결과: 3
문자 타입 char 변환
char ch = 'A';
int code = ch; // 자동 형변환: 문자 → 정수
System.out.println(code); // 65 (ASCII 코드)
주의사항: 강제 형변환은 데이터 손실 주의!
int big = 1000;
byte small = (byte) big;
System.out.println(small); // 예상치 못한 값 출력됨
byte는 -128 ~ 127 범위이므로 1000을 넣으면 값이 깨집니다
마무리 요약표
구분 | 설명 | 예시 |
자동 형변환 | 작은 타입 → 큰 타입 | int → double |
강제 형변환 | 큰 타입 → 작은 타입 (데이터 손실 가능) | double → int |
문법 | (자료형) 값 | (int) 3.14 → 3 |
LIST
'JAVA > 자바 문법 기초 익히기' 카테고리의 다른 글
산술 연산자 (0) | 2025.04.12 |
---|---|
비교 연산자 (0) | 2025.04.11 |
변수 선언과 초기화 (0) | 2025.04.11 |
정수, 실수, 문자, 문자열, 불리언 (0) | 2025.04.11 |
코드 실행 흐름 익히기 (0) | 2025.04.11 |