반응형
포장 객체
무엇인가 감싼다는 이야기입니다.
기본 타입( byte , char, short, int , long , float, double, boolean) 값을 포장하는 객체
기본 타입의 값은 외부에서 변경할 수 없다.
| 기본 타입 | Wrapper Class |
| byte | Byte |
| char | Charcter |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
외우기는 쉽습니다. int, char를 제외만 나머지의 Wrapper Class는 앞글자만 대문자입니다.
Boxing과 Unboxing
Boxing 기본 타입의 값을 포장 객체로 만드는 과정
Unboxing 포장 객체에서 기본 타입의 값을 얻어내는 과정
Boxing Code
*생성자를 이용
| 기본 타입의 값을 줄 경우 | 문자열을 줄 경우 |
| Byte obj = new Byte(10); | Byte obj = new Byte("10"); |
| Char obj = new Character('아'); | |
| Short obj = new Short(100); | Short obj = new Short("100"); |
| Integer obj = new Integer(100); | Integer obj = new Integer("100"); |
| Long obj = new Long(1000); | Long obj = new Long("1000"); |
| Float obj = new Float(2.5F); | Float obj = new Float("2.5F"); |
| Double obj = new Double(3.5); | Double obj = new Double("3.5"); |
| Boolean obj = new Boolean(true); | Boolean obj = new Boolean("true"); |
(Charcter은 문자열로 표현할 수 없습니다.)
*valueOf() 메소드 이용
Integer object = Integer.valueOf(100);
Integer object = Integer.valueOf("100");
Unboxing Code
| 기본 타입의 값을 사용 |
| byte byte = object.byteValue(); |
| char ch =object.charValue(); |
| short short =object.shortValue(); |
| int int =object.intValue(); |
| long long =object.longValue(); |
| float float =object.floatValue(); |
| double double =object.doubleValue(); |
| boolean bool = object.booleanValue(); |
자동 박싱과 언박싱
자동 박싱은 포장 클래스 타입에 기본값이 대입될 경우에 발생
Integer obj = 100; //자동 박싱
List<Integer> list = new ArraryList<Integer>();
list.add(200) //자동 박싱
자동 언박싱은 기본 타입에 포장 객체가 대입될 경우에 발생
Integer object = new Integer(100);
int value1 = object; //자동 언박싱
example1) 박싱과 언박싱
//Boxing
Integer obj1 = new Integer(100);
Integer obj2 = new Integer("100");
Integer obj3 = Integer.valueOf(100);
Integer obj4 = Integer.valueOf("100");
//UnBoxing
int obj5 = obj1.intValue();
int obj6 = obj2.intValue();
int obj7 = obj3.intValue();
int obj8 = obj4.intValue();
example2) 자동 박싱과 언박싱

문자열을 기본 타입 값으로 변환
| 기본 타입의 값을 사용 |
| byte byte = Byte.parseByte("10"); |
| short short =Short.parseShort("100"); |
| int int =Integer.parseInt("10"); |
| long long=Long.parseLong("100"); |
| float float=Float.parseFloat("3.5F"); |
| double double=Double.parseDouble("3.5"); |
| boolean bool = Boolean.parseBoolean("true"); |
포장값 비교
포장 객체는 내부의 값을 비교하기 포장 객체로 == 과!= 연산자를 할 수 없습니다.
예외 : 다음 값이라면 포장객체로 == 과!= 연산자로 내부의 값을 비교할 수 있습니다.
| 타입 | 값의 범위 |
| boolean | true, false |
| char | \u0000 ~ ]w007f |
| byte, short, int | -128 ~127 |
값을 언박싱해서 비교하거나, equals() 메서드로 내부 값을 비교하는 것이 바람직합니다.
값의 범위를 벗어나게되면 값의 주소 값을 비교하므로 주의해야 합니다.

반응형
'JAVA > [JAVA] 바구니' 카테고리의 다른 글
| [JAVA] RuntimeException (0) | 2020.06.06 |
|---|---|
| [JAVA] Exception (0) | 2020.06.06 |
| [JAVA] StringBuffer , StringBuilder (0) | 2020.05.21 |
| [JAVA] Enumeration Type (0) | 2020.05.13 |
| [JAVA] String Class(2) (0) | 2020.05.12 |
댓글