JAVA :: Wrapper 클래스

s_omi·2021년 1월 31일
2

JAVA (자바)

목록 보기
10/62
post-thumbnail

📝 Wrapper(포장) 클래스

💬 이름이 Wrapper인 클래스는 존재하지 않지만, 8개의 기본 타입을 객체로 다루기 위해 만들어 졌다.

💬 기본 타입을 객체를 대상으로 처리하기 위해서 사용한다.

💬 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다.


💡 객체 생성

💬 기본 타입의 값을 인자로하여 Wrapper 객체를 생성한다.

👉 예시
Integer i = new Integer(10); // 정수 10의 객체화 
Character c = new Character('c'); // 문자 'c'의 객체화
Boolean b = new Boolean(true); // 불린 값 ture의 객체화

💬 문자열로 Wrapper 객체를 생성할 수 있다.

⚠ Character 제외

👉 예시
Integer i = new Integer("10"); // 정수 10의 객체화 
Boolean b = new Boolean("false"); // 불린 값 false의 객체화

💡 Wrapper 객체에 들어있는 기본 타입 값 알아내기

💬 '기본 타입 + Value()'

👉 예시
Integer i = new Integer(10);
int i2 = i.intValue(); // i2 =10

💡 문자열 → 기본 타입의 값

💬 static + 'parse + 기본 타입 이름(문자열)'

👉 예시
int i = Integer.parseInt("123"); // i = 123
boolean b = Boolean.parseBoolean("true"); // b = true

💡 기본 타입의 값 → 문자열

💬 static String + '기본타입.toString'

⚠ 문자열으로 바꾸는 것이므로 리턴 타입은 무조건 String
👉 예시
String s1 = Integer.toString(123); // 정수 123을 문자열 "123"으로 변환
String s2 = Boolean.toString(true); // 불린 값 true를 문자열 "true"로 변환

💡 Boxing & Unboxing

💬 박싱은 기본 타입의 값을 Wrapper 객체로 변환하는 것을 말한다.

💬 언박싱은 반대로, Wrapper 객체를 기본 타입의 값으로 변환하는 것을 말한다.

👉 예시
Integer ten = new Integer(10); //박싱
int n = ten.intValue(); //언박싱

💡 자동 박싱 & 언박싱

💬 포장 클래스 타입에 기본 값이 대입될 경우 자동 박싱이 발생한다.

💬 기본 타입에 포장 객체가 대입되는 경우 및 연산 시에 자동 언박싱이 발생한다.

👉 예시
Integer ten = 10; // 자동 박싱
//기본 값인 10이 Integer 클래스에 = 될 수 없어서 자동으로 박싱되어짐.

int n = ten; // 자동 언박싱
//int 값인 n이 Integer 클래스에 = 될 수 없어서 자동으로 언박싱되어짐.
int n = ten + 20; // 자동 언박싱

💡 Boxing 값 비교

💬 박싱이 된 객체는 각각 다른 객체기 때문에 == 및 != 연산자를 사용하면, 내부 값을 비교할 수 없다.

💬 언박싱한 값을 얻어 비교하는 equals()을 사용하는 것이 바람직하다.

Reference

명품 자바 에센셜 (2014, 황기태) / 혼자 공부하는 자바 (2019, 신용권)

profile
공부한 거 올려요 :)

0개의 댓글