자바의 기본 타입을 클래스화 하여 객체로 다룰 수 있도록 하는 것이다.
기본 타입 | Wrapper 클래스 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
이름이 Wrapper인 클래스는 존재하지 않는다.
( 첫글자가 대문자라면 class로 봐도 무방하다. )
이 경우에는 c의 포인터로 이해하는 것이 편할 것 같다.
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는 주소값을 가리킨다.
기본 타입과 비슷한데 ( ) 넣는 데이터를 문자열 형식에 맞게 (" ")
써주면 된다.
자료형에 일치 하는 것만 문자열로 쓸 수 있다.
⭕ Integer i = Integer.valueOf("10");
❌ Integer i = Integer.valueOf("1.56");
boolean의 true와 false는 문자열로 사용할 수 없다.
⭕ Float f = Float.valueOf(10);
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
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