티스토리 뷰

development/Java

[Java] Wrapper Class

Happyoon ~ 2021. 11. 2. 15:19
728x90
반응형

Wrapper Class는, 자바의 기본 데이터 타입을 객체로 포장해주는 클래스이다. 

각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어준다. 

 

[기본 data type의 참조 data type]

 

byte : Byte
short : Short
int : Integer
long : Long
   
float : Float
double : Double
 
char : Character
boolean : Boolean

 

Character과 Integer을 제외하고는, 기본 데이터 타입에서 첫문자만 대문자로 쓰면 객채처럼 사용할 수 있다. 

 

Int num = 10;

객체로 포장해주기 때문에, num에는 참조값이 들어있다. 하지만, 10이라는 기본 데이터 타입이 들어있다고 고 생각해도 무방하다.

 

Wrapper Class 를 사용하면, 여러 메소드들을 사용할 수 있는 장점이 있다.

예시를 통해 확인해보자.


 

1) MainClass01.java - Wrapper Class로 toString(), parseInt() 사용해보기

package test.main;
/*
 * [기본 data type의 참조 data type]
 * 
 * byte		: Byte
 * short	: Short
 * int		: Integer
 * long		: Long
 * 
 * float	: Float
 * double	: Double
 * 
 * char		: Character
 * boolean	: Boolean
 */
public class MainClass01 {
	public static void main(String[] args) {	
		int num1 = 10;
		/*
		 * num2에는 참조값이 들어있지만
		 * 10이라는 기본 데이터 type이 들어 있다고 생각해도 된다.
		 */
		Integer num2 = 10;
		//참조 데이터 type이지만 기본 데이터 type처럼 사용할 수 있다.
		int result = num2+1;
		int result2 = num1+num2;
		Integer result3 = num1+num2;
		
		//숫자를 문자로 바꾸기 10 => "10"
		String strNum = num2.toString();
		
		//문자를 숫자로 바꾸기
		String strNum2 = "999";
		int result4 = Integer.parseInt(strNum2);
		
	}
}

 

num2 는 Integer형이기 때문에, 메소드를 사용할 수 있다.

toString()은, 문자열로 바꿔주는 메소드이므로, toString()을 통해 변환된 문자열의 참조값을 String strNum에 넣는다. 

 

parseInt()는, 정수형으로 바꿔주는 메소드이므로, int result4에 저장할 수 있다. 

 

각종 연산들은 기본 데이터 타입과 동일하게 사용할 수 있다.


2) MainClass02.java - parseDouble(), toString() 사용해보기

 

예제1번과 유사한 예제이다. 

이번에는 Double Wrapper Class를 사용해보았다. Integer과 거의 똑같으므로 예제를 한번 읽어보면 될 것 같다.

package test.main;

public class MainClass02 {
	public static void main(String[] args) {
		//기본 데이터 타입 double
		double num1 = 10.1;
		//참조 데이터 타입 Double
		Double num2 = 10.2;
		
		//참조 데이터 타입 Double 이지만 마치 기본 데이터 타입과 같이 사용할 수 있다.
		double result1 = num2+10;
		double result2 = num1+num2;
		Double result3 = num1+num2;
		
		//숫자를 문자열로 바꾸기 10.1 => "10.1"
		String strNum = num2.toString();
		
		//문자열을 숫자(double)로 바꾸기 "10.3" => 10.3
		double result4 = Double.parseDouble("10.3");
	}
}

 

parseDouble로, 문자열을 double 타입으로 변환할 수 있다. 

디버깅을 해보면, parseInt, toString, parseDouble등의 메소드를 사용하여 형변환을 했을 때, 힙 영역에 새로운 객체가 생성되어, 원래 참조값과는 다른 참조값을 가지는 객체가 생성됨을 확인할 수 있다.

간단히 말해, 바꾸려던 객체의 값이 바뀌는 것이 아니고, 새로운 객체가 생성되는 것이다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함