Java_Wrapper 클래스

song·2023년 10월 20일

Java

목록 보기
27/36

Wrapper 클래스

  • 기본 자료형을 참조형 자료형처럼 사용하게 해주는 클래스
    (참조형처럼 사용하면 문자형 -> 숫자형, 숫자형 -> 문자형으로 변환하기도 편하고, null값을 처리할 수도 있다. )
  • 자바는 객체지향 언어이기 때문에 사실 모든 자료형도 객체로 다뤄줘야 한다.
  • 그러나 기본자료형은 객체가 아니다.
    이유는 기본자료형들은 기본값들을 다 가지고 있어서 heap 영역의 String Pool 영역에 기본적인 값들을 할당해놓기 때문이다.
    (굳이 또 생성할 필요가 없으니까 참조형(인스턴스 또는 객체)로 취급하지 않는다. )

Wrapper 클래스 종류

  • byte -> Byte
  • short -> Short
  • int -> Integer
  • long -> Long
  • float -> Float
  • double -> Double
  • char -> Character
  • boolean -> Boolean

Wrapper 클래스 사용

  • float f = 10; 이렇게 해놓으면 f는 0.0으로 포맷팅(기본값)이 되어있고, heap영역에 10을 넣어둔다. 그리고 출력하면 포맷(기본값)인 0.0을 기준으로 0.0이 출력된다.
  • int i = null;이렇게 해놓으면 i는 0으로 포맷팅(기본값)이 되어있는데 null을 넣어서 포맷이 전혀 맞지 않기 때문에 오류가 난다.
    이럴 때 Integer i = null; 를 쓸 수 있다.
  • String str = "123";
    int i = Integer.parseInt(str);
    Integer클래스(Wrapper 클래스) 안에 있는 문자열 변환함수(parseInt)를 사용해 문자열을 정수로 바꿈.

Wrapper 클래스에서 알아야 할 개념 (Boxing & UnBoxing)

  • Boxing : 기본 -> wrapper
  • UnBoxing : wrapper -> 기본
  • 기본 자료형에서 wrapper 클래스 자료형으로 변경(Boxing)하거나 반대의 경우(UnBoxing) 사용
  • Boxing 하는 방법
    1. new WrapperClass(값) : 주로 사용하지 않음.
      Integer i = new Integer(10);
    2. wrapperClass.valueOf(값) : 이것을 선호
      Integer i2 = Integer.valueOf(10);
  • UnBoxing 하는 방법 : wrapperClass객체.기본타입Value()
    int p = i.intValue();
  • 기본 자료형과 wrapper 클래스는 박싱 언박싱 따로 안해도 오토언박싱이 알아서 해줌.
    int p2 = i;
  • 기본 자료형과 wraper 클래스 연산도 autoBoxing과 autoUnBoxing에 의해 변환없이 자동으로 연산이 가능.
    System.out.println(i + p);
profile
계속 나아가기

0개의 댓글