Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

Wrapper클래스 본문

프로그래밍 언어/Java

Wrapper클래스

세레프 2023. 5. 16. 22:15

 자바에서는 개발자들이 개발할 때 사용하기 위한 기본 기능인 API가 구현되어 있으며, import를 통해 클래스를 호출해서 해당 클래스의 메서드를 사용한다.

 하지만 모든 클래스는 기본적으로 java.lang 패키지를 사용하기에 다른 API 패키지의 클래스와 달리 java.lang패키지에 있는 클래스는 import없이 사용할 수 있다.

클래스 특징
Object - 자바 클래스의 최상위 클래스
System - 표준 입력 장치를 통해 데이터를 입력
- 표준 출력 장치를 통해 데이터를 출력
Class - 클래스를 메모리로 로딩
String - 문자열을 저장하고 여러가지 정보를 흭득
Wrapper(Byte, Character, Short, Integer ...) - 기본 타입의 데이터를 갖는 객체를 생성
Math - 수학 함수를 이용할 때 사용

 

Wrapping 클래스

 기본 타입은 객체를 생성하지 않고, 해당 변수에 데이터를 저장하는 기본 변수를 사용한다. 하지만 기본 타입도 객체를 생성해서 해당 객체에 값을 저장할 수 있는데, 이때 생성되는 객체를 Wrapping객체라고 하며, Wrapping클래스를 통해 생성된다.

 Wrapping클래스기본 타입의 값을 객체처럼 사용할 수 있도록 기본 타입의 값을 객체 안에 저장하고 객체를 생성하는 클래스로, Wrapping클래스에 구현된 기능을 통해 기본타입의 값을 변형시켜서 출력할 수 있다. 하지만 객체 내부에 저장되어 있는 기본 타입 값은 변경이 할 수 없다. 그래서 새로운 값을 사용하기 위해서는 새로운 객체를 만들어서 사용해야 한다.

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

 이때, Wrapper클래스를 통해 객체를 만드는 과정Boxing, Wrapper클래스를 통해 만든 객체에서 기본 타입의 값을 얻는 과정Unboxing이라고 하며, "Wrapper클래스명 객체명 =  new Wrapper클래스명(값)"의 형태로 객체에 값을 넣어서 박싱한다. 하지만 jdk 9 버전 이후부터는 Wrapper 클래스의 생성자의 사용을 권장하지 않기에 "Wrapper클래스명 객체명 =  값"인 Auto Boxing을 사용하는 것을 권장한다. 

Auto Boxing Auto UnBoxing
 기본 타입의 값을 자동으로 Wrapper클래스의 객체로 변환시켜주는 과정  Wrapper 클래스의 객체 값을 자동으로 기본 타입의 값으로 변환시켜 주는 과정
Wrapper클래스명 객체명 =  값 기본 타입 객체명 = Wrapper객체
package pack0516;

public class Code2 {

	public static void main(String[] args) {
		int i = 10;
		double d = 20.5;
		float f = 3.14f;
		char c = 'a';
		
		//boxing
		Integer I = i;
		Double D = d;
		Float F = f;
		Character C = c;
		
		System.out.println(I);
		System.out.println(D);
		System.out.println(F);
		System.out.println(C);
		
		//unboxing
		int ii = I;
		double dd = D;
		float ff = F;
		char cc = C;
		
		System.out.println(ii);
		System.out.println(dd);
		System.out.println(ff);
		System.out.println(cc);
		
	}

}

 

 Boxing한 객체는 Wrapper클래스에 구현되어 있는 메서드를 사용할 수 있으며, Wrapper클래스마다 사용할 수 있는 메서드가 다르다.

  • intValue() : 정수형 객체에 저장되어 있는 값을 정수형으로 출력
  • floatValue() :  정수형 객체에 저장되어 있는 값을 float형으로 출력
  • doubleValue() :  정수형 객체에 저장되어 있는 값을 double형으로 출력
  • toString() :  정수형 객체에 저장되어 있는 값을 문자형으로 출력
  • valueOf( 변수 / 값 ) : 매개변수에 저장되어 있는 값으로 객체를 생성

위의 메서드는 숫자형 Wrapper클래스에서 사용하는 메서드로, 해당 메서드를 사용하여도 객체에 저장되어 있는 값은 변경되지 않는다.

package pack0516;

public class Code1 {

	public static void main(String[] args) {
		int a = 10;
		Integer aa = new Integer(10);

		System.out.println(aa.intValue());
		System.out.println(aa.floatValue());
		System.out.println(aa.doubleValue());
		System.out.println(aa.toString());
		
		System.out.println(aa);
        	System.out.println(Integer.valueOf(a));

	}

}

'프로그래밍 언어 > Java' 카테고리의 다른 글

Calendar클래스, Date클래스  (0) 2023.05.18
StringTokenizer클래스, Random클래스  (0) 2023.05.17
String클래스, StringBuffer클래스  (0) 2023.05.12
API와 Object 클래스  (0) 2023.05.11
예외 떠넘기기  (0) 2023.05.06
Comments