이 클래스는 추상클래스이며 내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들의 조상이다.
Object
|
Number
|
Byte Short Integer Long Float Double BigInteger BigDecimal
상속 계층도를 보면 기본형 중에서 숫자와 관련된 래퍼 클래스들은 모두 Number클래스의 자손이라는 것을 알 수 있다.
그 외에도 BigInteger, BigDecimal이 있는데 이는 각각 정수와 실수의 가장 큰 기본형 long, double로 다룰 수 없는 큰 범위의 보둥 소수점수를 처리하기 위한 것으로 연산자의 역할을 대신하는 다양한 메서드를 가지고 있다.
Number 클래스 ↓
public abstract class Number implements java.io.Serializable {
public abstract int intValue();
public abstract long longValue();
public abstract float floatValue();
public abstract double doubleValue();
public byte byteValue() {
return (byte)intValue();
}
public short shortValue() {
return (short)intValue();
}
}
객체가 가지고 있는 값을 숫자와 관련된 기본형으로 변환하여 반환하는 메서드들을 정의하고 있다.
문자열을 숫자로 변환 하는 다향한 방법이 있다.
int i = new Integer("100").intValue(); // floatValue(), longValue()...
int i2 = Integer.parseInt("100"); // 주로 이 방법 사용
Integer i3 = Integer.vvalueOf("100");
parse기본형타입()을 사용하면 기본형으로 반환하고 래퍼클래스.valueOf()를 사용하면 래퍼클래스 형태로 반환 해 주는것을 알 수 있다.
문자열이 10진수가 아닌 다른 진법(radix)의 숫자일 때도 변환이 가능하도록 메서드가 구성되어 있다.
static int parseInt(String s, int radix)
static Integer valueOf(String s, int radix)
참고로 10진법 이상의 진법은 11부터 'A' ~ 'F'로 입력 가능하다.