-
[Java] Wrapper 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 19. 16:46
Wrapper 클래스는 Wrapper라는 이름의 클래스가 존재하는 것이 아니다. java.lang 패키지에 있는 클래스 중 자바의 기본 데이터 타입과 매핑되는 클래스들을 의미한다.
Wrapper 클래스 기본 데이터 타입 Boolean boolean Byte byte Character char Double double Float float Integer int Long long Short short 박싱과 언박싱
기본 데이터는 값 자체만 저장되어 있으므로 데이터에 대해 처리할 때 메서드를 사용할 수 없다. 따라서 데이터에 대한 처리 기능이 필요할 땐 기본 데이터를 Wrapper 클래스로 생성한 후 해당 클래스에서 제공하는 메서드를 활용한다.
Wrapper 클래스를 생성할 땐 Wrapper 클래스에서 static으로 제공하는 valueOf() 메서드를 사용하여 생성한다. 이렇게 기본 데이터를 Wrapper 객체로 만드는 과정을 '박싱(Boxing)'이라고 한다.
기본 데이터를 클래스 형태로 생성하여 사용하다가 반대로 기본 타입으로 변경하고자 할때 Wrapper 클래스에서제공하는 '데이터 타입.valueOf()' 메ㅓ드를 사용한다. Wrapper 클래스 형태의 데이터를 기본 타입으로 변경하는 과정을 '언박싱(Unboxing)'이라고 한다.
public class test { public static void main(String[] args){ boolean bool = true; byte b = 12; char c = 'A'; double d = 3.14; float f = 10.5f; int i = 123; long l = 123456789; short s = 256; Boolean obj1 = Boolean.valueOf(bool); Byte obj2 = Byte.valueOf(b); Character obj3 = Character.valueOf(c); Double obj4 = Double.valueOf(d); Float obj5 = Float.valueOf(f); Integer obj6 = Integer.valueOf(i); Long obj7 = Long.valueOf(l); Short obj8 = Short.valueOf(s); boolean bool2 = obj1.booleanValue(); byte b2 = obj2.byteValue(); char c2 = obj3.charValue(); double d2 = obj4.doubleValue(); float f2 = obj5.floatValue(); int i2 = obj6.intValue(); long l2 = obj7.longValue(); short s2 = obj8.shortValue(); } }
오토박싱
기본 데이터를 Wrapper 객체로 만들려면 Wrapper 클래스의 valueOf() 메서드를 사용해야 했다. 또한, Wrapper 객체를 기본 데이터로 변환하려면 ~Value() 메서드를 사용해야 했다. 기본 데이터-> 참조 데이터 변환은 박싱, 참조 데이터->기본 데이터 변환은 언박싱이라고 하는데, 박싱과 언박싱 작업을 JDK1.5부터는 자동으로 처리하며 이를 '오토박싱(autoboxing)'이라고 한다. 컴파일 시에 처리 코드가 아래의 예시와 같이 자동으로 생성된다.
int n1 = 10; Integer obj1 = n1; //Integer obj1 = Integer.valueOf(n1); Integer obj2 = Integer.valueOf("20"); int n2 = obj2; //int n2 = obj2.intValue(); Integer obj3 = 30; //Integer obj3 = Integer.valueOf(30); int n3 = obj3 + 40;
문자열 변환
Wrapper 클래스는 문자열 타입 데이터를 기본 데이터 타입으로 변환하는 메서드들을 제공한다. 문자열에서 기본 데이터 타입으로 변환하는 메서드는 다음과 같다. 모두 static으로 선언되어 있다. 올바르게 문자열을 기본 데이터 타입으로 변환 처리하려면 기본 데이터로 표현할 수 있는 유효한 값을 전달해야 한다. 변환할 수 없는 잘못된 문자열을 전달하면 오류가 발생한다.
메서드 설명 static boolean parseBoolean(String s) 문자열 -> boolean static byte parseByte(String s) 문자열 -> byte static double parseDouble(String s) 문자열 -> double static float parseFloat(String s) 문자열 -> float static int parseInt(String s) 문자열 -> int static long parseLong(String s) 문자열 -> long static short parseShort(String s) 문자열 -> short 정리
기본 데이터를 Wrapper 객체로 만들려면 Wrapper 클래스의 valueOf() 메서드를 사용해야 했다. 또한, Wrapper 객체를 기본 데이터로 변환하려면 ~Value() 메서드를 사용해야 했다. 문자열 타입 데이터를 기본 데이터 타입으로 변환하려면 parse~() 메서드를 사용해야 한다.
기본 데이터-> 참조 데이터 변환은 박싱, 참조 데이터->기본 데이터 변환은 언박싱이라고 하는데, 박싱과 언박싱 작업을 JDK1.5부터는 자동으로 처리하며 이를 '오토박싱(autoboxing)'이라고 한다.
'IT > 개발(자바, 서블릿, 스프링 등)' 카테고리의 다른 글
[Java] 유틸리티 API (3) java.util.Arrays 클래스 (0) 2020.01.19 [Java] 유틸리티 API (1) java.util.StringTokenizer 클래스 (0) 2020.01.19 [Java] Math 클래스 (0) 2020.01.18 [Java] StringBuffer/StringBuilder 클래스 (0) 2020.01.18 [Java] 자바 기본 API(String 클래스) (0) 2020.01.18