본문 바로가기

Back-End/JAVA

래퍼 클래스

Java는 객체 지향 언어인데 기본형은 객체 타입이 아니다..

객체가 아니기 때문에 한계가 있다.

우리는 객체 안에 유용한 메서드(기능)을 만들 수 있다! 

하지만 기본형은 그런 유용한 기능들이 없어서 사용함에 있어 많은 제약들이 따르고 심지어 기본형은 Null 값을 가질 수 없다!

그래서 이 기본형을 객체 타입으로 바꾸는 것이 바루 래퍼 클래스이다!!

 

래퍼 클래스는 기본형을 객체로 감싸서 더 편리하게 만들 수 있는 클래스이다.

래퍼 클래스가 기본으로 제공 되는 것들은 다들 알고있지요?(사실 쓰기 너무 귀찮음)

  • int -> Integer
  • short -> Short
  • long -> Long
  • char -> Charactor

등등 int와 char을 제외하고는 전부 기본형 이름을 대문자로 시작해주면된다!

 

래퍼 클래스의 특징

1. 불변이다.

2. 불변 객체이기 때문에 equals로 비교해야 한다.

 

자바에는 기본형을 래퍼 클래스로 변경하는 것을 박싱이라고 하고, 래퍼 클래스에 들어 있는 기본형 값을 다시 꺼내는 것을 언박싱이라고 함.

Integer integerObj = Integer.valueOf(10); // 기본형 int를 래퍼 Integer로 박싱
int intValue = integerObj.intValue(); //래퍼 클래스 안에 기본형 값을 꺼냄 언박싱

근데 우리가 이걸 바꾸려고 계속 변환을 해줘야 한다는 불편함이 있음..

그래서 자바는 이것을 해결하려고 오토 박싱, 오토 언박싱을 제공한다.

Integer boxedValue = 10; // 오토 박싱
int intValue = boxedValue; //오토 언박싱

그냥 기본형을 래퍼 클래스로 받아주면 알아서 박싱과 언박싱을 시켜준다! 편하다..

 

래퍼 클래스의 주요 기능

  • valueOf(10) or valueOf("10") : 래퍼 타입을 반환한다. 숫자, 문자열 모두 지원
  • parseInt() : 문자열을 기본형으로 변환한다.
  • compareTo() : 내 값과 인수로 넘어온 값을 비교한다. 내 값이 크면 1, 같으면 0, 내 값이 작으면 -1을 반환
  • Integer.sum(), Integer.min(), Integer.max() : static 메서드이다.

'Back-End > JAVA' 카테고리의 다른 글

문자열(String)의 메서드  (0) 2024.11.28
Math, Random 클래스  (2) 2024.11.19
불변 String 클래스와 가변 StringBuilder  (1) 2024.11.19
람다와 스트림  (1) 2024.11.19
불변 객체  (0) 2024.11.18