JAVA
221018 Wrapper클래스-Boxing, UnBoxing, AutoBoxing
주영재
2022. 10. 18. 17:14
★★★Wrapper클래스
자바는 기본 타입의 값을 갖는 객체를 생성할 수 있다.
기본형byte, short, int, long, float, double, char, boolean
이러한 객체를 포장 객체라고 하는데, 그 이유는 기본 타입의 값을 객체 내부에 두고 포장하기 때문
객체형Byte, Short, Integer, Long, Float, Double, Character, Boolean
기본형을 객체에 담을 때 포장한다고 해서 'boxing한다' 라고 표현함
반대의 경우 'unboxing한다' 라고 표현.
매번 불편, 그래서 타입만으로 선언하면 자동형변환이 일어남. -AutoBoxing
실제 Wrapper클래스는 문자열->기본형으로 바꾸는데 많이 사용됨.
Integer.parseInt()나 Long.parseLong처럼.
Boxing, UnBoxing
package api.lang.wrapper;
public class Boxing {
public static void main(String[] args) {
int a =100;
double b = 3.14;
Long c = 200L;
//기본형->객체형 포장하는 작업을 boxing
Integer val = new Integer(a);
Double val2 = new Double(b);
Long val3 = new Long(c);
Object[] arr = {val, val2, val3};//객체형 변수를 Object배열에 저장
//객체형->기본형 변경하는 작업 unboxing
int a1=val.intValue();
double b1=val2.doubleValue();
Long c1 = val3.longValue();
}
}
AutoBoxing
package api.lang.wrapper;
public class AutoBoxing {
public static void main(String[] args) {
//Autoboxing ->자동형변환
int a=100;
Integer val =a;
a=val;
Object[] arr = {1, 2, 3};//자동형변환된 것.
int v1=Integer.parseInt("3");
int v2=Integer.parseInt("34");
double v3=Double.parseDouble("3.14");
long v4=Long.parseLong("2342354564345");
System.out.println(v4+v3+v2+v1);//2.34235456438514E12
}
}
중요한건 자동형변환이 된다는 것과, 형변환을 통해 Object배열등에 담을 수 있다는 것.
Integer.parseInt등을 사용하기 위해 형변환을 쓴다. 이런 메서드가 굉장히 자주 사용됨.