안녕하세요 피맨입니다.
이번에는 자료, 즉 데이터의 형태를 변환시키는 것에 대해 알아볼께요.
데이터의 형태는 앞에서 정수형, 실수형, 문자형 등 다양한 형태를 알아봤는데. 이런 형태를 다른 형태로 변환하는 것을 말해요. 이를 형변환이라고 합니다.
형변환은 기본적으로 묵시적 형변환과 명시적 형변환으로 나눌 수 있습니다.
예제를 통해 각 형변환을 알아보겠습니다.
1. 묵시적 형변환 (자동 형변환)
자바는 크기가 작은 자료형에서 크기가 큰 자료형으로 변환될 때, 자동으로 형변환을 수행합니다.
예를 들어, int에서 double로 변환될 때 자동으로 변환이 이루어집니다.
예제: 자동 형변환
int intNum = 100;
double doubleNum = intNum; // int → double (자동 형변환)
System.out.println("intNum: " + intNum); // 출력: intNum: 100
System.out.println("doubleNum: " + doubleNum); // 출력: doubleNum: 100.0
이 코드에서 int 자료형인 intNum이 doubleNum 변수에 할당될 때 자동으로 double로 변환됩니다.
double은 int보다 더 큰 범위를 가지기 때문에 자동으로 변환될 수 있습니다.
2. 명시적 형변환 (강제 형변환)
반대로, 큰 자료형에서 작은 자료형으로 변환할 때는 데이터 손실이 발생할 수 있으므로, 프로그래머가 명시적으로 변환을 지정해야 합니다. 이런 경우 (자료형)을 사용하여 변환을 명시합니다.
- 예제: 강제 형변환
double doubleNum = 123.45;
int intNum = (int) doubleNum; // double → int (명시적 형변환)
System.out.println("doubleNum: " + doubleNum); // 출력: doubleNum: 123.45
System.out.println("intNum: " + intNum); // 출력: intNum: 123
여기서 double 자료형인 doubleNum을 int로 강제 변환했습니다.
소수점 이하의 값이 손실되므로, intNum의 값은 123이 됩니다.
3. 기본 자료형과 참조 자료형 간의 형변환 (박싱과 언박싱)
자바에서는 기본 자료형과 참조 자료형 간의 형변환도 지원합니다. 기본 자료형을 객체로 다루기 위해 박싱(Boxing), 객체를 기본 자료형으로 변환하는 것을 **언박싱(Unboxing)**이라 합니다.
- 예제: 박싱과 언박싱
Integer boxedInt = 100; // 자동 박싱 (int → Integer)
int unboxedInt = boxedInt; // 자동 언박싱 (Integer → int)
System.out.println("boxedInt: " + boxedInt); // 출력: boxedInt: 100
System.out.println("unboxedInt: " + unboxedInt); // 출력: unboxedInt: 100
int 타입의 값을 Integer 객체로 자동 변환하여 boxedInt에 저장하고, 이를 다시 int로 자동 변환하여 unboxedInt에 저장했습니다.
4. 문자열(String)과 숫자형 간의 형변환
자바에서 문자열과 숫자형 간의 형변환도 가능합니다. 숫자형 데이터를 문자열로 변환하거나, 문자열을 숫자형으로 변환할 수 있습니다.
- 예제: 숫자형 → 문자열 변환
int num = 123;
String str = Integer.toString(num); // int → String 변환
System.out.println("문자열 str: " + str); // 출력: 문자열 str: 123
예제: 문자열 → 숫자형 변환
String str = "123";
int num = Integer.parseInt(str); // String → int 변환
System.out.println("정수 num: " + num); // 출력: 정수 num: 123
위와 같은 방법으로 String을 Integer나 Double 같은 숫자형으로 변환할 수 있습니다.
요약
- 묵시적 형변환: 작은 자료형 → 큰 자료형으로 자동 변환
- 명시적 형변환: 큰 자료형 → 작은 자료형으로 강제 변환
- 박싱과 언박싱: 기본 자료형과 참조 자료형 간의 변환
- 문자열과 숫자형 간의 변환: Integer.parseInt 및 Integer.toString 등의 메서드를 활용
형변환을 올바르게 사용하면 데이터 처리를 효율적으로 할 수 있으며, 자바의 다양한 데이터 타입을 유연하게 사용할 수 있습니다.
'프로그래밍이야기 > 자바' 카테고리의 다른 글
[자바배우기] 자바의 변수 (0) | 2024.09.09 |
---|