Java Numbers 클래스 – 래퍼 클래스와 상속 구조 설명
일반적으로 숫자를 다룰 때 byte, int, long, double 같은 기본 데이터 타입을 사용합니다.
예제
int i = 5000;
float gpa = 13.65f;
double mask = 125;
그러나 개발 과정에서 기본 데이터 타입 대신 객체를 사용해야 하는 상황을 마주칩니다. 이를 위해 Java는 래퍼 클래스들을 제공합니다.
모든 래퍼 클래스(Integer, Long, Byte, Double, Float, Short)는 추상 클래스 Number의 서브클래스입니다.
래퍼 클래스 객체는 해당 기본 데이터 타입을 포함하거나 감쌉니다. 기본 데이터 타입을 객체로 변환하는 것을 박싱이라 하며, 이는 컴파일러가 처리합니다. 따라서 래퍼 클래스를 사용할 때 래퍼 클래스 생성자에 기본 데이터 타입의 값을 전달하기만 하면 됩니다.
래퍼 객체는 다시 기본 데이터 타입으로 변환되며 이 과정을 언박싱이라 합니다. Number 클래스는 java.lang 패키지의 일부입니다.
다음은 박싱과 언박싱의 예제입니다:
예제
Live Demo
public class Test {
public static void main(String args[]) {
Integer x = 5; // int를 Integer 객체로 박싱
x = x + 10; // Integer를 int로 언박싱하여 덧셈
System.out.println(x);
}
}
이 코드는 다음 결과를 생성합니다:
출력
15
x에 정수 값이 할당되면 x가 Integer 객체이므로 컴파일러가 정수를 박싱합니다. 나중에 x가 언박싱되어 정수로 더해질 수 있습니다.
Number 메서드
Number 클래스의 모든 서브클래스가 구현하는 인스턴스 메서드 목록입니다:
| 번호 |
메서드 & 설명 |
| 1 | xxxValue() - 이 Number 객체의 값을 xxx 데이터 타입으로 변환하여 반환 |
| 2 | compareTo() - 이 Number 객체를 인자와 비교 |
| 3 | equals() - 이 숫자 객체가 인자와 같은지 판단 |
| 4 | valueOf() - 지정된 기본 타입의 값을 가진 Integer 객체 반환 |
| 5 | toString() - 지정된 int 또는 Integer의 값을 나타내는 String 객체 반환 |
| 6 | parseInt() - 특정 String의 기본 데이터 타입을 얻는 데 사용 |
| 7 | abs() - 인자의 절댓값 반환 |
| 8 | ceil() - 인자보다 크거나 같은 가장 작은 정수 반환(double로 반환) |
| 9 | floor() - 인자보다 작거나 같은 가장 큰 정수 반환(double로 반환) |
| 10 | rint() - 인자와 값이 가장 가까운 정수 반환(double로 반환) |
| 11 | round() - 메서드 반환 타입에 따라 인자에 가장 가까운 long 또는 int 반환 |
| 12 | min() - 두 인자 중 작은 값 반환 |
| 13 | max() - 두 인자 중 큰 값 반환 |
| 14 | exp() - 자연로그 밑 e를 인자만큼 거듭제곱한 값 반환 |
| 15 | log() - 인자의 자연로그 반환 |
| 16 | pow() - 첫 번째 인자를 두 번째 인자만큼 거듭제곱한 값 반환 |
| 17 | sqrt() - 인자의 제곱근 반환 |
| 18 | sin() - 지정된 double 값의 사인 반환 |
| 19 | cos() - 지정된 double 값의 코사인 반환 |
| 20 | tan() - 지정된 double 값의 탄젠트 반환 |
| 21 | asin() - 지정된 double 값의 아크사인 반환 |
| 22 | acos() - 지정된 double 값의 아크코사인 반환 |
| 23 | atan() - 지정된 double 값의 아크탄젠트 반환 |
| 24 | atan2() - 직교 좌표(x, y)를 극좌표(r, theta)로 변환하고 theta 반환 |
| 25 | toDegrees() - 인자를 도 단위로 변환 |
| 26 | toRadians() - 인자를 라디안 단위로 변환 |
| 27 | random() - 난수 반환 |
다음 단계
다음 섹션에서는 Java의 Character 클래스를 다룹니다. Java에서 객체 Character와 기본 데이터 타입 char를 사용하는 방법을 배우게 됩니다.