School Study

[업무일지]-20100825

룸훼훼 2010. 8. 25. 17:18
반응형

JAVA-

wrapper 클래스

기본자료형들을 객체처럼 사용할수 있도록 도와주는 wrapper클래스가 있다.

 Wrapper 클래스란?

기본 데이터형을 값이 아닌 객체로 사용할 수 있는 방법을 제공.

Primitive Data Type
Wrapper Class
boolean
Boolean
byte
Byte
char
Character
short
Short
int
Integer
long
Long
float
Float
double
Double

다음 그림을 보자.

< Wrapper 클래스와 기타 클래스의 클래스 계층도>

보면 Boolean클래스와 Character클래스는 Object 클래스의 하위 클래스이나 나머지는 Number 크래스의 하위클래스이다.

2> Wrapper 클래스 제공 메서드

Wrapper 클래스가 제공하는 메서드는 대부분이 객체를 원하는 기본 데이터형으로 바꾸어 준다. 또는 반대로 기본데이터를 객체로 만들어준다. 그 중 주로 사용하는 메서드를 본다.

String toString()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 String형 값으로 바꾸어 준다.
byte byteValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 byte 형 값으로 바꾸어 준다.
short shortValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 short 형 값으로 바꾸어 준다.
int intValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 int 형 값으로 바꾸어 준다.
long longValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 long 형 값으로 바꾸어 준다.
float floatValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 float 형 값으로 바꾸어 준다.
double doubleValue()
Wrapper 클래스 객체가 가지고 있는 숫자 값을 double 형 값으로 바꾸어 준다.

3> Wrapper 클래스 예

1. ShowWrap


1 : public class ShowWrap
2 : {
3 : public static void main(String args[])
4 : {
5 : boolean bi = true;
6 : Boolean wrapBi = new Boolean(bi);
7 :
8 : int n = 300;
9 : Integer wrapN = new Integer(n);
10 :
11 : float f = (float)300.3;
12 : Float wrapF = new Float(f);
13 :
// Boolean 클래스 객체를 문자열로 바꾼다,
14 : System.out.println("Wrapper 클래스의 값은 " + wrapBi.toString());
// Integer 클래스 객체를 int형으로 바꾼다.
15 : System.out.println("Wrapper 클래스의 값은 " + wrapN.intValue());
// Float 클래스 객체를 float형으로 바꾼다.
16 : System.out.println("Wrapper 클래스의 값은 " + wrapF.floatValue());
17 : }
18 : }


<< 실행 결과 >>

Wrapper 클래스의 값은 true
Wrapper 클래스의 값은 300
Wrapper 클래스의 값은 300.3


박싱과 언박싱~!
기본자료타입변수를 wrapper클래스의 생성자의 매개변수로 주어 객체를 생성하면 이과정에서 스택에 있던 값이 힙에 저장되는데 이를 박싱이라한다.
언박싱은 반대라고 생각하면된다. 박싱되어 힙에 저장되어있는 값을 스택으로 풀어 저장하는 형태이다.
반응형

'School Study' 카테고리의 다른 글

[업무일지]-20100827  (0) 2010.08.30
[업무일지]-20100826  (0) 2010.08.27
[업무일지]-20100820  (0) 2010.08.20
[BSP]업무일지 - 20100817  (0) 2010.08.17
[BSP]업무일지 - 20100816  (0) 2010.08.17