시작하며
여러분 안녕하세요!
DreamHanks의 254cm입니다.
이번 시간에는 래퍼 클래스에 대해서 설명해보도록 하겠습니다.
Java의 전체 기사는 여기를 클릭해 주세요.
이전 기사는 【Java개발】제21회 파일의 입출력에 대해서 배워봤습니다.
래퍼 클래스
래퍼 클래스는 기본형 변수를 객체로 다루기 위한 클래스입니다.
래퍼 클래스는 각 기본형에 해당하는 클래스가 존재하며 해당하는 기본형 값을 가질 수 있습니다.
래퍼 클래스는 기본형과 비슷하지만 래퍼 클래스는 외부에서 값을 변경할 수 없습니다.
래퍼 클래스
샘플
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class WrapperClassSample { public static void main(String[] args) { Byte byte1 = 1; Short short1 = 100; Integer integer1 = 1000; Long long1 = (long)10000; Float float1 = 1.6f; Double double1 = 1.0; Character character1 = 'x'; Boolean boolean1 = true; Integer integer2 = new Integer(10); } } |
상기의 샘플처럼 기본형의 값을 대입하여 초기화하기도 하고,
new 키워드로 인스턴스를 생성하여 초기화할 수도 있습니다.
래퍼 클래스의 메서드
래퍼 클래스도 일반 클래스처럼 메서드를 가지고 있습니다.
래퍼 클래스는 equals(), compareTo(), 형 캐스트용 메서드 등을 공통으로 가지고 있습니다.
샘플
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public class WrapperClassSample { public static void main(String[] args) { Integer val1 = new Integer(10); Integer val2 = new Integer(20); if(val1.equals(val2)) { System.out.println(val1); } else { System.out.println(val1.compareTo(val2)); } byte byteValue = val2.byteValue(); short shortValue = val2.shortValue(); int intValue = val2.intValue(); long longValue = val2.longValue(); float floatValue = val2.floatValue(); double doubleValue = val2.doubleValue(); } } |
위의 샘플과 같이 형캐스트 메서드를 사용하여 형캐스트를 할 수 있습니다.
그러나, 형 캐스트 메서드는 Number 클래스를 상속하는 클래스 밖에 사용할 수 없습니다.
※Byte, Short, Integer, Long, Float, Double 등이 Number 클래스를 상속받았습니다.
박싱(Boxing)과 언박싱(UnBoxing)
기본형 값을 래퍼 클래스에 저장하는 과정을 박싱(Boxing)과
래퍼 클래스 값을 기본형 값으로 변환하는 과정을 언박싱(Unboxing)이라고 합니다.
샘플
1 2 3 4 5 6 7 8 |
public class WrapperClassSample { public static void main(String[] args) { Integer val1 = new Integer(10); // Boxing int val2 = val1.intValue(); // Unboxing } } |
Java 5 이전 버전에는 위와 같이 박싱과 언박싱을 했는데,
Java 5 부터 오토박싱과 오토언박싱 기능을 지원했습니다.
오토박싱과 오토언박싱은 기본형 변수 조작 방법처럼 래퍼 클래스를 다루어도 가능하도록 하는 기능입니다.
샘플
1 2 3 4 5 6 7 8 |
public class WrapperClassSample { public static void main(String[] args) { Integer val1 = 10; //Auto Boxing int val2 = val1; //Auto Unboxing } } |
위와 같이 일반 기본형 변수처럼 사용해도 컴파일러가 권투와 언박싱 처리로 바꿉니다.
끝으로
이번 기사는 이상입니다.
다음 번에는 Generic을 배워보겠습니다.
방문해 주셔서 감사합니다.
コメント