[기초 자바]wrapper class
wrapper는 기본 자료형을 감싸고 있는 클래스라는 뜻입니다. 대체 왜 감싸야하는 걸까요..그냥 풀어주면 안 되는 걸까요?
boolean,byte, char, short, int , long, float, double까지 8가지 기본 자료형은 모두 wrapper class를 갖고 있습니다. 코드를 읽었을 때 구분하기 위해 wrapper class는 대문자로 시작하고 줄여서 쓰지 않습니다.
boolean -> Boolean
byte -> Byte
char -> Character
short -> Short
int -> Int
long -> Long
float -> Float
double -> Double
요렇게 됩니다. 왼쪽의 기본 자료형은 변수로 취급됩니다. int data = 5; 이런식으로 쓰이죠 객체가 아닙니다. 만약 저런 것들이 모두 객체였다면 연산에 상당한 시간이 소요될 것입니다. 그러나 객체로도 필요할 때가 나타납니다. 예를 들어서 문자열로 받은 숫자가 있습니다. 우리 눈에는 숫자로 보이지만, 사실은 String이라는 자료형을 갖고 있겠죠
ex. String num = "123";
이것을 정수 형태로 바꿔서 요리조리 써먹어보고 싶습니다. 그런데 현재는 문자형이기 때문에 어찌할 방도가 없습니다.
그런 경우에 int num = Integer.parseInt(num); 을 해주면 연산이 가능한 숫자가 되어 탄생합니다. 이런것처럼 wrapper class는 기본 자료형의 객체화를 통해 기본 자료형만으로는 할 수 없는 기능을 할 수 있게 해줍니다. 주의해야 할 부분은 wrapper class를 기본자료형을 대신하기 위해서 쓰지 않는다는 것입니다. wrapper class가 무조건적인 최선책이 아니라 필요할 때만 사용한다는 것을 명심해야겠습니다.