JAVA Wrapper 클래스

강효림·2023년 5월 1일
0

JAVA

목록 보기
13/19

Wrapper class 란?

자바의 기본 타입을 클래스화 하여 객체로 다룰 수 있도록 하는 것이다.

👉 Wrapper 클래스 표

기본 타입Wrapper 클래스
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

이름이 Wrapper인 클래스는 존재하지 않는다.
( 첫글자가 대문자라면 class로 봐도 무방하다. )

Wrapper 객체 생성

이 경우에는 c의 포인터로 이해하는 것이 편할 것 같다.

👉 기본 타입의 값으로 Wrapper 객체 생성

int i = 10; 이라면 i에 10이 저장 되는 것이고
Integer i = Integer.valueOf(10); 이라면 i에는 10의 주소값이 저장 되는 것이다.

Integer i = Integer.valueOf(10);Integer 클래스 안에 있는 valueOf 메소드를 호출해 ( )안의 기본 데이터들을 객체 타입으로 저장하는 것이다.
Integer i = Integer.valueOf(10);i는 주소값을 가리킨다.

👉 문자열로 Wrapper 객체 생성

기본 타입과 비슷한데 ( ) 넣는 데이터를 문자열 형식에 맞게 (" ") 써주면 된다.
자료형에 일치 하는 것만 문자열로 쓸 수 있다.
Integer i = Integer.valueOf("10");
Integer i = Integer.valueOf("1.56");

boolean의 true와 false는 문자열로 사용할 수 없다.

👉 Float 객체는 정수 값으로 생성 가능하다.

Float f = Float.valueOf(10);

Wrapper 활용

Wrapper의 주요 메소드는 다양하지만 몇가지만 알아보겠다.

👉 객체로부터 기본 타입 값 알아내기

Integer i1 = Integer.valueOf(10); // 기본타입 -> 객체타입
		int i2 = i1.intValue(); // 객체타입 -> 기본타입
		System.out.println(i2);
        
Double f = Double.valueOf(3.14);
		double dd = f.doubleValue();
		System.out.println(dd);

10
3.14

👉 문자열을 기본 데이터 타입으로 변환 ( parse )

		int i3 = Integer.parseInt("123"); //i=123
		System.out.println(i3);

123

👉 기본 타입을 문자열로 변환

String s1 = Integer.toString(123); //정수 123을 문자열 "123"으로 변환
		System.out.println(s1);
		String s2 = Integer.toHexString(123); //정수 123을 16진수 문자열 "7b"으로 변환
		System.out.println(s2);
		String s3 = Character.toString('f'); //문자 'f'를 문자열 "f"로 변환
		System.out.println(s3);

123
7b
f


✍ 예제 풀어보기

package test2_5;

public class WrapperEx {

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

	}

}

a
4는 숫자
F는 영문자
-123
1c
11100
3
3.14
3.14
true
false

0개의 댓글