반응형
포장 객체
무엇인가 감싼다는 이야기입니다.
기본 타입( 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 |
댓글