본문 바로가기
Java

[Java] Wrapper 클래스 / Integer 클래스 / intValue() 메서드 / valueOf() 메서드 / parseInt() 메서드

by bkuk 2022. 10. 3.

지금까지 정수를 사용할 때 기본형인 int를 사용했습니다.

 

그런데 정수를 객체형으로 사용해야 하는 경우가 있습니다.

예를 들면 매개변수가 객채거나 반환 값이 객체형인 경우입니다.

public void setValue(Integer a) {
 코드..
}

public Integer returnValue() {
 코드..
}

 

자바에서는 기본 자료형처럼 사용할 수 있는 클래스를 제공합니다.

기본형 Wrapper 클래스
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double

 

Integer 클래스 메서드

Integer value = new Integer(200);
int showValue = value.intValue();
// intValue() : int 값 가져오기, 위에서는 showValue를 출력하면 200이 출력됨

 

valueOf() 메서드와 parseInt() 메서드

valueOf() 메서드생성자를 사용하지 않고 정수나 문자열을 바로 Integer 클래스로 반환받을 수 있습니다.

parseInt() 메서드는 문자열이 어떤 숫자를 나타낼 때, 이를 문자열에서 int 값으로 반환합니다.

Integer num1 = Integer.valueOf("200");
System.out.println( num1 );
// 200이 출력됨.

int num2 = Integer.parseInt("200");
System.out.println( num2 );
// 200이 출력됨.

 

오토박싱(autoboxing)과 언박싱(unboxing)

Java 5이전에는 Integer와 int형으로 선언된 변수의 덧셈에서

Integer는 intValue() 메서드를 통해 정수 값을 꺼내거나 int형으로 선언된 변수 값을 Integer로 변경하는 등,

기본 자료형과 Wrapper 클래스형을 함께 연산하기 위해 하나의 형태로 일치해야만 했습니다.

하지만 Java 5 이후부터는 아래와 같은 연산이 가능합니다.

Integer num1 = Integer.valueOf("200");
int num2 = 200;
int num3 = num1 - num2;

System.out.println( num3 );
// 0이 출력됨.

Integer number1 = Integer.valueOf("300");
int number2 = 500;
Integer number3 = number1 + number2;
System.out.println( number3);
// 400이 출력됨

 

따라서, 용어적인 측면에서는

기본형에서 객체형으로 변경하는 것을 오토박싱(autoboxing),

객체형을 기본형으로 바꾸는 것을 언박싱(unboxing)이라고 합니다.

댓글