'Wrapper Class' 는 비객체형 'primitive type' 의 데이터를 객체형 데이터로 처리하기 위한 자료형입니다
'primitive type' 과 1:1 대응으로만 작동되며 클래스이므로 일부를 제외하고 'primitive type'의 자료형의 첫글자를 대문자로 처리합니다.
(
char -
Character,
int -
Integer는 외우시면 좋습니다!!!)
boolean bo1 = true;
byte by1 = 1;
short sh1 = 2;
char ch1 = 'A';
int n1 = 10;
long ln1 = 20L;
float fl1 = 1.2F;
double db1 = 12.56;
Boolean bo2 = bo1;
Byte by2 = by1;
Short sh2 = sh1;
Character ch2 = ch1;
Integer n2 = n1;
Long ln2 = ln1;
Float fl2 = fl1;
Double db2 = db1;
위와 같이 호환되는 'primitive type' 의 값만 저장하고 다른 값을 저장하게 된다면 아래와 같은 메시지가 호출됩니다.
Byte by3 = 12;
Short sh3 = by3;

그렇다면 'primitive type'처럼 다른 타입의 자료형을 일치시키는 방법은 없을까요?
물론
'Wrapper Class' 에도
'primitive type' 와 같이 자료형을 변환하여 적용시키는 방법이 있습니다.
첫 번째 방식으로
'메서드(Method)'를 활용하는 방법이 있습니다.
Byte by3 = 12;
Short sh3 = by3.shortValue();
'Wrapper Class' 에 내장되어있는
'변수.(변환 할)wrapper classValue();'
의 형태로 적어주시면 해당 변수에 저장할 수 있습니다.
두 번째 방식으로는 'primitive type' 과 같이
'명시적 형변환'을 활용하는 방법이 있습니다.
Byte by3 = 12;
Short sh3 = (short)(byte)by3;
해당 방식의 원리는 변수이름에 가까운 형변환부터 수행하는 것입니다.
위의 코드를 예시로 들자면
'Short' ↔ 'short' ↔ 'byte' ↔ 'Byte'
와 같이 순차적으로 진행됩니다.
'Wrapper Class' 가 이와 같이 작동하는 이유는
'primitive type' 와의 1 대 1 상호작용 때문이며
'primitive type' 의 경우 같은 정수형 또는 같은 실수형이면
'묵시적 형변환'을 통해 저장이 이루어집니다.
따라서 이와 같은
'Wrapper Class' 의 특성을 기억하셔서 단순히 형태가 다른 자료형이 아니라 이해를 바탕이 되어야 한다는 점을 유의하시기 바랍니다.