1. 변수 - (3) Wrapper 클래스

한승록·2023년 3월 22일
0
post-thumbnail
'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' 의 특성을 기억하셔서 단순히 형태가 다른 자료형이 아니라 이해를 바탕이 되어야 한다는 점을 유의하시기 바랍니다.
profile
개발 학습

0개의 댓글