Dev_bob

[JAVA] Wrapper 클래스 본문

카테고리 없음

[JAVA] Wrapper 클래스

킹대왕너구리 2024. 5. 15. 10:34

6.7 Wrapper 클래스

자바의 Wrapper 클래스는 기본 데이터 타입을 객체로 감싸는 클래스입니다.

int,char,double 등 8개의 기본 타입이 있는데 이것에 각각 대응하는 Wrapper 클래스가 있습니다.Wrapper 클래스는 기본타입의 데이터를 객체로 다루어야 할 때 유용합니다.

기본 타입Wrapper 클래스

기본타입 Wrapper 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

 

 

Wrapper 클래스의 객체 생성

Wrapper 객체는 기본타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성

Integer i=Integer.valueOf(10); -> 정수 10의 객체화

Character c= Character.valueof('c');->문자'c'의 객체화

Double d = Double.valueOf(3.14);->실수 3.14의 객체화

Boolean b = Boolean.valueOf(true);-> 불린 값 true의 객체화

 

+Character을 제외한 나머지 Wrapper 클래스의 경우 Wrapper 객체를 생성할 수 있다.

 

Wrapper 클래스의 활용

Wrapper 클래스는 많은 메소드를 제공합니다. 대부분 기본타입 값을 문자열로 반환하거나, 문자열을 기본 타입 값으로 변환하는 것들이 주를 이룹니다.

많은 메소드가 static 타입입니다.

 

예제6-5

public class WrapperEx {
	public static void main(String[] args) {
		System.out.println(Character.toLowerCase('A'));	//'A'를 소문자로 변환
		
		char c1='4',c2='F';
		if(Character.isDigit(c1))	//문자 c1이 숫자이면 true
			System.out.println(c1+"는 숫자");
		if(Character.isAlphabetic(c2))//문자 c2가 영문자이면 true
			System.out.println(c2+"는 영문자");
		
		System.out.println(Integer.parseInt("-123"));	//-123을 10진수로 변환
		System.out.println(Integer.toHexString(28));	//정수 28을 16진수 문자열로 변환
		System.out.println(Integer.toBinaryString(28));	//정수 28을 2진수 문자열로 변환
		System.out.println(Integer.bitCount(28));//28에 대한 2진수의 1의 개수
		
		Double d=Double.valueOf(3.14);	//3.14의 객체화
		System.out.println(d.toString());//Double을 문자열 "3.14"로 변환
		System.out.println(Double.parseDouble("3.14"));//문자열을 실수 3.14로 변환
		
		boolean b=(4>3);
		System.out.println(Boolean.toString(b));	//true를 문자열"true"로 변환
		System.out.println(Boolean.parseBoolean("false"));	//문자열을 false로 변환
		
	}

}

 

출력결과:

a

4는 숫자

F는 영문자

-123

1c

11100

3

3.14

3.14

true

false

 

박싱(boxing)과 언박싱(unboxing)

박싱 - 기본타입을 Wrapper 객체로 변환하는 것 ex) Integer ten=Integer.valueOf(10);

언박싱-Wrapper타입 객체를 기본 타입으로 변환하는 경우 ex)int n=ten.intValue();

 

박싱과 언박싱은 JDK1.5부터 자동으로 이루어집니다.

Integer ten=10; //자동 박싱. Integer ten = Integer.valueOf(10);로 자동처리

int n = ten; //자동 언박싱. int n=ten.intValue();로 자동처리