반응형
자바에서는 원시 타입(Primitive Type), 래퍼 클래스(Wrapper Class)라는 말이 있는데
래퍼 클래스는 원시 타입을 객체화한 것으로
int pri = 20; 으로 작성했을 경우 단순히 숫자로서만 기능하나
Integer wrap = 10; 으로 작성했을 경우
객체 형태로 생성되어 null을 넣거나 메소드를 사용할 수 있게 된다
Wrapper 형태는 객체로 사용되는 것 외에도 <> 안에 들어가는 Generics에 사용된다
정리해보자면 Wrapper를 사용하는 이유는
원시 타입을 객체로 만들어 null을 넣거나 메소드를 사용할 수 있고
.toString() 메소드를 사용해 String 타입으로 바로 변환할 수 있다
또한 Generics(<>) 는 Wrapper 형태로만 들어올 수 있다
다음으로는 boxing과 unboxing인데
각각 원시 타입을 래퍼 클래스로,
래퍼 클래스를 원시 타입으로 변환할 때 사용하는데
예제 코드에는 Integer = (Integer) int변수 이런 식으로 사용하지만
Java 5 이후로는 이렇게 캐스팅을 하지 않고
Integer 변수명 = int 변수명;
이런 식으로 해도 적용이 되는데
이걸 Autoboxing, AutoUnboxing이라 한다
예제에 사용한 코드는 아래와 같다
import java.util.ArrayList;
public class PrimitiveExample {
public static void main(String[] args) {
Integer wrap = 10;
int pri = 20;
wrap.byteValue(); // 래퍼 클래스는 원시 타입의 객체화
wrap.toString(); // 래퍼 타입을 문자열로 변환
wrap = null; // 래퍼 클래스에는 null이 들어감
// 래퍼 타입은 <Generics> 안에 들어감
ArrayList<Integer> list = new ArrayList<Integer>();
// 앞에 (Integer), (int)를 붙이지 않아도 자동으로 변환이 됨(Auto boxing/unboxing)
wrap = (Integer) pri; // boxing(Primitive to Wrapper)
pri = (int) wrap; // unboxing(Wrapper to Primitive)
}
}
반응형
'Language > Java' 카테고리의 다른 글
자바 변수 타입 확인방법 (0) | 2020.02.11 |
---|---|
자바 제네릭스 개념 및 예제 (0) | 2020.02.11 |
자바 배열을 리스트로, 리스트를 배열로 변환방법 (2) | 2020.02.10 |
자바 개선된 for문 사용법 (0) | 2020.02.10 |
자바 배열, List 순서 뒤집는 방법 (0) | 2020.02.09 |
댓글