Number — 숫자 값을 표현하는 추상 클래스
Number — 숫자 값을 표현하는 추상 클래스
Number는 byte, double, float, int, long, short 같은 원시 타입으로 변환할 수 있는 숫자 값을 나타내는 플랫폼 클래스들의 슈퍼클래스인 추상 클래스예요.
본문
특정 Number 구현이 숫자 값을 어떤 원시 타입으로 변환할 때의 정확한 의미는 그 구현에 따라 달라져요. 플랫폼 클래스들의 변환은 대개 JLS(Java Language Specification)에 정의된 축소(narrowing)·확대(widening) 원시 변환과 비슷해요. 그래서 변환 과정에서 숫자 값의 전체 크기나 정밀도가 손실될 수 있고, 심지어 입력과 부호가 다른 결과를 낼 수도 있어요. 구체적인 변환 규칙은 각 Number 구현 문서를 참고해야 해요.
상속 구조는 다음과 같아요.
java.lang.Object
java.lang.Number
Serializable을 구현해요. 대표적인 하위 클래스로 Integer, Long, Double, Float, Byte, Short, BigInteger, BigDecimal, 그리고 원자성(atomic) 숫자인 AtomicInteger, AtomicLong, LongAdder, DoubleAdder 등이 있어요.
생성자
Number()— 하위 클래스가 호출하는 생성자예요.
추상 메서드
abstract int intValue()— 이 숫자 값을int로 변환해 반환해요.abstract long longValue()— 이 숫자 값을long으로 변환해 반환해요.abstract float floatValue()— 이 숫자 값을float로 변환해 반환해요.abstract double doubleValue()— 이 숫자 값을double로 변환해 반환해요.
구체 메서드
byte byteValue()— 이 숫자 값을byte로 변환해 반환해요.short shortValue()— 이 숫자 값을short로 변환해 반환해요.
intValue(), longValue(), floatValue(), doubleValue()는 추상 메서드라서 모든 하위 클래스가 반드시 구현해야 하고, byteValue()·shortValue()는 기본 구현이 있어요.