본문 바로가기

언어/Java

포장 클래스(Wrapper class)

※ 포장 클래스(Wrapper class)

: 기본 자료형(byte, char, short, int, long, float, double, boolean, 메모리 상에 직접 값을 저장하며, null 값을 가질 수 없음 )을 참조형(객체(Object)를 나타내는 자료형으로, 클래스, 인터페이스, 배열 등이 여기에 해당. 이 자료형들은 메모리 상에 객체의 주소를 가지며, null 값을 가질 수 있다)으로 바꿀 때 사용하는 class들 

포장 객체를 생성하기 위한 클래스는 java.lang 패키지에 포함되어 있다.

기본타입 포장 클래스
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
boolean Boolean

※ 박싱(boxing) : 기본 자료형을 해당하는 참조 자료형으로 변환하는 과정, 기본 타입의 값을 포장 객체로 만드는 과정. 포장 클래스 변수에 기본 타입 값이 대입할 때 발생. 기본 자료형 값을 그에 해당하는 래퍼 클래스(wrapper class)로 감싸서 참조 자료형으로 만듭니다. 기본형(int) → 참조형(Integer) → Object로 업캐스팅

박싱

※ 언박싱(unboxing) : 포장 객체에서 기본 타입의 값을 얻어내는 과정. 기본 타입 변수에 포장 객체가 대입할 때 발생

int i = 42;            // 기본 자료형 int
Integer wrappedInt = i; // Boxing을 통해 int를 Integer로 변환, 박싱

int value = obj; //언박싱
int i = (int)"1";//  문자열을 정수로 강제 형변환 불가능
			//  기본 자료형이랑 참조형은 직접적인 형변환 불가능
       
// 정수와 문자열 간의 변환은 메서드를 사용
int i = 1;
String str = Integer.toString(i); // 또는 String.valueOf(i);

String str = "123";
int i = Integer.parseInt(str); // 또는 int i = Integer.valueOf(str);
public class WrapperTest {

	public static void main(String[] args) {
		int i = 100;
		Object obj;
		obj = Integer.valueOf(i);// Boxing:{기본형(int) -> 참조형(Integer)} -> Object로 업캐스팅
		obj = i; // AutoBoxing 됨
				// 컴파일 시에 Integer.valuaeOf(i); 로 코드가 바뀜
	
		int j;
		//Object를 다운캐스팅 UnBoxing : {Integer(참조형) -> int(기본형) }
		j = ((Integer)obj).intValue();
		j = (Integer)obj;	// AutoUnboxing됨
					//컴파일시에 ((Integer)obj).intValue(); 로 코드가 바뀜;
	}
	

}

'언어 > Java' 카테고리의 다른 글

어노테이션(Annotation)  (0) 2023.08.08
날짜와 시간 클래스  (0) 2023.08.08
정규표현식(regex)  (0) 2023.08.08
문자열 클래스  (0) 2023.08.08
롬복(Lombok)  (0) 2023.08.08