Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 도전기

[JAVA] 포장 클래스 본문

개발공부/JAVA

[JAVA] 포장 클래스

jnnjnn 2024. 3. 19. 20:56

포장 클래스란 기본 타입에 대응하는 참조 타입이다. 즉, 기본 타입의 값을 갖는 객체이다.

 

기본 타입 포장 클래스
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
boolean Boolean

 

포장 객체는 포장하고 있는 기본 타입의 값을 변경할 수 없고, 단지 객체로 생성하는 데 목적이 있다.

이런 객체가 필요한 이유는 컬렉션 객체 때문이다. 컬랙션 객체는 기본 타입의 값은 저장할 수 없고, 객체만 저장할 수 있기 때문에 기본 타입의 값을 객체로 생성해준다.

 

박싱과 언박싱

기본 타입의 값을 포장 객체로 만드는 과정을 박싱(boxing)이라고 하고, 반대로 포장 객체에서 기본 타입의 값을 얻어내는 과정을 언박싱이라고 한다.

 

박싱은 포장 클래스 변수에 기본 타입 값이 대입될 때 발생한다. 반대로 언박싱은 기본 타입 변수에 포장 객체가 대입될 때 발생한다.

 

이때 주의해야 할 점은 기본 타입의 값이 형변환 된다고 해서 포장 클래스도 형변환이 되는 것은 아니다.

ㅇ상속 관계에 있는 타입들만 박싱이 가능하다.

public class C02WrapperClass {
    public static void main(String[] args) {
        int a = 3;
        long b = a;

//        Long d = a; 불가능

        Number e = a;
        Object f = a;
    }
}

 

언박싱은 연산 과정에서도 발생한다. obj는 50과 연산되기 전에 언박싱된다.

Integer obj = 100; // 박싱
int value = obj; // 언박싱

int value = obj + 50; // 언박싱 후 연산

 

문자열을 기본 타입 값으로 변환

포장 클래스는 문자열을 기본 타입 값으로 변환할 때도 사용된다. 대부분의 포장 클래스에는 'parse + 기본타입' 명으로 되어있는 정적 메소드가 있다. 이 메소드는 문자열을 해당 기본 타입 값으로 변환한다.

 

포장 값 비교

포장 객체는 내부 값을 비교하기 위해 ==와 != 연산자를 사용할 수 없다. 참조 타입이기 때문에 두 객체의 참조값을 비교하기 때문이다. 대신 equals() 메소드로 내부 값을 비교할 수 있다.

'개발공부 > JAVA' 카테고리의 다른 글

[JAVA] Map 컬렉션  (0) 2024.03.20
[JAVA] 제네릭(Generic)  (0) 2024.03.19
[JAVA] Object 클래스  (0) 2024.03.19
[JAVA] TreeSet  (0) 2024.03.19
[JAVA] Set 컬렉션  (0) 2024.03.19