[Java] Wrapper 클래스란?
1. Wrapper 클래스란?
➡ 기본 자료형을 객체 자료형으로 사용할 수 있도록 만들어 놓은 자료형 ( 포장 클래스)

일반 기본자료형(원시자료형)들은 클래스가 아니다.
따라서 최상위 클래스인 Object 클래스의 하위클래스가 될 수 없다.

이러한 기본 자료형을 Object 클래스와 연동해서 무엇인가 쓰고싶지만 연관관계가 없기 때문에
Wrapper 클래스 즉 객체 자료형으로 만들어서 Object와 상속관계를 통해 연관 기능을 이용한다.

➡ 변수에 1을 저장하는 방법 2가지
int a = 1; (a라는 변수를 만들어서 그 안에 저장함)
Integer b = new Integer(1);
int v= b.intValue();
메모리에 객체를 만들어서 1이라는 데이터를 넣는것.

Integer 의 메소드들 알아보기
intValue() : 내부의 데이터 값을 정수형으로 return 해줌
toString() : 내부의 데이터 값을 String 형태로 return 해줌
parseInt() : String 데이터를 정수형으로 변환해줌.
기본 자료형을 Object 데이터 타입의 배열에 저장하기 위해선

Wrapper 클래스를 이용해서 기본 자료형의 데이터 값을 저장이 가능하다.
오른쪽으로 넣는것이 원래 정석인데 왼쪽도 오류가 나지 않는다.

Integer 에 int=1 데이터 값을 넣어도 자동으로 컴파일러가 new Integer(1) 으로 변환해서 넣어준다.
(Boxing)
반대로 int 타입에 Integer 데이터 값을 넣을때에도 10이라는 객체에 담긴 값에서
int 값을 빼내서 기본 자료형 int 값에 넣어준다.
(unBoxing)
💡 2. 코드로 공부하는 Wrapper 클래스

기본 자료형으로 선언해서 1을 저장하는 것과
Integer 클래스에 new Integer 을 선언해서 1이란 데이터를 넣는 정성적인 방법이다.
하지만 위에 보면 에러는 아니고 약간의 비추천(?)표시가 뜬다.

Integer에 그냥 기본 자료형으로 넣는게 오히려 경고 화면이 안뜬다=> 간단하게 쓰라고 추천해주는것.

Object 클래스의 배열을 형성해서 데이터를 넣을때에도 Integer을 통해 보통 넣어준다.
위의 입력 방법과 마찬가지로

java 에서는 이 방법을 더 추천해준다.
여기서 이 값들을 출력하고자 하면.

해당 객체에 .toString()을 써서 값을 출력한다.

이때 toString 같은 경우는 Integer이 부모 클래스인 Object에서 상속받아 재정의한 메소드이다.
Object 클래스의 toString 메소드는 인스턴스 객체의 클래스 이름, '@' 기호, 그리고 16진수로 표현된 객체의 해시코드로 구성된 문자열을 리턴한다.
Integer클래스에서 상속을 받아 재정의한 toString 은 객체 내부의 데이터 값을 String으로 리턴해주는 메소드이다.

String x,y 를 더하면 문자열이 이어서 나올것이다.
이때 숫자간의 연산으로 계산하고자 한다면 Integer의 메소드인 parseInt 를 쓸 수 있다.

이렇게 바꾼 v1 과 v2를 더했을 때 다시 문자열의 결합인 "100100"으로 바꾸기 위해서는
String 클래스의 메소드인 valueOf를 사용하면 된다.

Java 관련 개념을 알려주실 때 그 내부 동작이 어떻게 구현되는지 자세하게 알수 있는 강의입니다.
출처: Java TPC (생각하고, 표현하고, 코딩하고) 대시보드 - 인프런 | 강의 (inflearn.com)