순간을 기록으로

[Java] Wrapper 클래스는 왜 필요할까? 본문

Development/JAVA

[Java] Wrapper 클래스는 왜 필요할까?

luminous13 2022. 10. 11. 18:24

자바는 객체지향 프로그래밍 언어입니다. 객체라는 세계에 있기 때문에 모든 것들을 객체로 표현합니다.

예를 들어 간단한 파일 같은 경우에도 Object로 다루고, image도 객체로 다룹니다.

 

그렇기 때문에 때때로 원시 자료형(=기본형) 타입이 Object(객체)로 변환될 필요할 때가 있습니다. 예를 들어 어떤 메서드의 매개변수가 객체 타입일 때, ArrayList, Hash 등 컬렉션 프레임워크의 경우 객체만(참조형)을 저장할 수 있습니다. 즉 기본형은 저장할 수 없습니다.

 

우선 Wrapper 클래스가 무엇인지 살펴보겠습니다. Wrapper 클래스는 기본형 데이터를 감싸 객체로 표현해주는 클래스입니다. 따라서 자료형으로 객체를 요구하는 상황에서 사용될 수 있습니다. 또한 Wrapper 클래스는 기본적으로 객체를 다시 기본형으로 unwrapp하는 static 메서드를 가지고 있습니다.  

 

int k = 100;
Integer it1 = new Integer(k);
int m = it1.intValue();
System.out.println(m*m); // prints 10000

위 코드에서 it1는 intValue() 메서드를 이용하여 객체에서 다시 기본형으로 형을 바꾸고 있습니다. 

 

래퍼 클래스의 기능

 

  • 생성자를 사용하여 기본형(int, double, ..) --> object(Integer, Double)로 바꿔준다.
  • 숫자 문자열 --> 숫자값으로 바꿔준다
    • long  l = Long.parseLong("100")
    • Long l = Long.valueOf("100")
  • 기본형을 객체로 다루도록 바꿔준다.
  • 객체를 다시 기본형으로 바꿀 수 있다.
Comments