[Java] Wrapper 클래스
Wrapper 클래스
Wrapper 클래스라는 것은 그 이름이 의미하듯이 'wrap(포장)'하는 기능의 클래스를 의미한다.
이것은 주로 JDK1.5 이전에 많이 쓰였던 기능들인데 설명하자만 기본자료형을 객체자료형으로 변환하기 위해서 사용하는 클래스라고 생각하면 된다.
1. 문제제기
Object 타입의 변수는 모든 객체형 자룔를 표현할 수 있지만, int나 byte와 같은 기본형 자료는 선언할 수 없다.
Object a = 123; //컴파일오류
2. 문제를 일으키는 경우
- 변수의 최초 선언
- 메소드의 파라미터, 리턴타입
- 배열과 같은 자료구조
3. 기본형 자료를 객체형 자료로 처리하기 위한 클래스
기본자료형 | Wapper 클래스 |
byte | Byte 클래스 |
short | Short 클래스 |
int | Integer 클래스 |
long | Long 클래스 |
double | Double 클래스 |
float | Float 클래스 |
boolean | Boolean 클래스 |
char | Character 클래스 |
4. 사용법
Integer data = new Integer(3);
int intValue = data.intValue();
double doubleValue = data.doubleValue();
String StringValue = data.toString();
예제)
Integer aa = new Integer(10);
Integer bb = aa;
aa = aa + new Integer(1);
System.out.println("aa: "+aa);
System.out.println("bb: "+bb);
실행결과
aa: 11
bb: 10
5. 문자열 --> 기본자료형 / 숫자 --> 문자열
문자를 기본 자료형으로 바꿀 때 | 기본 자료형을 문자형으로 바꿀 때 |
byte b = Byte.parseByte(문자열); | Byte.toString(byte 값); |
short s = Short.parseshort(문자열); | Short.toString(short 값); |
int i = Integer.parseInt(문자열); | Integer.toString(int 값); |
double d = Double.parseDouble(문자열); | Double.toString(double 값); |
long l = Long.parseLong(문자열); | Long.toString(long 값); |
float f = Float.parseFloat(문자열); | Float.toString(float 값); |
boolean b = new Boolean(문자열); | Boolean.toString(boolean 값); |
char c = String.클래스의 메소드 이용 | Character.toString(char 값); |
6. Autoboxing / Unboxing
Autoboxing / Unboxing는 JDK1.5에서 지원하는 자동 변환이다. 이 방식 때문에 기본 자료형이나 객체 자료형을 간단히 변환할 수 있게 되었다.
(1) Autoboxing
Autoboxing은 기본 자료형의 데이터를 자동으로 객체 자료형으로 변환하는 것을 의미한다.
int i = 10;
Integer J = 1;
(2) Unboxing
Unboxing은 Wrapper 자료형을 기본 자료형으로 자동 변환한다.
Integer i = new Integer(10);
int j = 1;
출처: https://devbox.tistory.com/entry/Java-Wrapper-클래스?category=574549 [장인개발자를 꿈꾸는 :: 기록하는 공간]
'JAVA > Java' 카테고리의 다른 글
[AWS : Amazon Web Service] Java S3 사용 (1) | 2020.09.04 |
---|---|
[java] AES256 암호화 (0) | 2020.09.04 |
SuppressWarnings-이건-뭐지 (0) | 2020.07.02 |
[Java] 객체를 제거하는 방법 (0) | 2020.06.10 |
[Java] 예외 던지기 (0) | 2020.06.10 |
[Java] 예외 만들기 (0) | 2020.06.10 |
[Java] 예외 처리 기본 (0) | 2020.06.10 |
[Java] enum (0) | 2020.06.10 |