Thường thì, khi làm việc với Number, chúng ta sử dụng các kiểu dữ liệu gốc như byte, int, long, double, …
Ví dụ:
int i = 5000; float gpa = 13.65; byte mask = 0xaf;
Tuy nhiên, khi mở rộng, chúng ta cũng gặp các tình huống mà chúng ta cần sử dụng các đối tượng thay cho các kiểu dữ liệu gốc. Để thực hiện điều này, Java cung cấp các lớp wrapper (lớp bọc) cho mỗi kiểu dữ liệu gốc.
Tất cả các lớp wrapper (Integer, Long, Byte, Double, Float, Short) là lớp phụ của lớp trừu tượng Number.
Sự bao bọc này được chăm sóc bởi bộ biên dịch, tiến trình này được gọi là boxing. Vì thế khi một kiểu dữ liệu gốc được sử dụng khi một đối tượng được yêu cầu, bộ biên dịch "đóng hộp" kiểu dữ liệu gốc trong lớp wrapper của nó. Tương tự, bộ biên dịch cũng "mở hộp" đối tượng thành một kiểu dữ liệu gốc. Number là một phần của java.lang package.
Dưới đây là ví dụ của box và unbox:
public class Test{ public static void main(String args[]){ Integer x = 5; // dong hop int thanh doi tuong Integer x = x + 10; // mo hop Integer thanh int System.out.println(x); } }
Nó sẽ cho kết quả sau:
15
Khi x được gán các giá trị integer, bộ biên dịch "đóng hộp" giá trị integer này bởi vì x là đối tượng integer. Sau đó, x được "mở hộp" để mà chúng có thể được cộng thêm các integer.
Các phương thức của lớp Number trong Java
Bảng dưới liệt kê các phương thức mà tất cả các lớp phụ của lớp Number thực thi:
STT | Phương thức và miêu tả |
---|---|
1 | xxxValue() trong Java Biến đổi giá trị của đối tượng Number này thành kiểu dữ liệu xxx mà được trả về từ phương thức |
2 | compareTo() trong Java So sánh đối tượng Number này với tham số |
3 | equals() trong Java Kiểm tra có hay không đối tượng Number này là bằng với tham số |
4 | valueOf() trong Java Trả về một đối tượng integer giữ giá trị gốc đã xác định |
5 | toString() trong Java Trả về đối tượng String biểu diễn giá trị Integer đã xác định |
6 | parseInt() trong Java Phương thức này được sử dụng để nhận kiểu dữ liệu gốc của một String cụ thể |
7 | abs() trong Java Trả về giá trị tuyệt đối của tham số |
8 | ceil() trong Java Trả về số integer nhỏ nhất mà lớn hơn hoặc bằng tham số. Giá trị trả về ở dạng double. |
9 | floor() trong Java Trả về số integer lớn nhất mà nhỏ hơn hoặc bằng tham số. Giá trị trả về ở dạng double. |
10 | rint() trong Java Làm tròn số, trả về giá trị integer gần nhất với giá trị tham số. Giá trị trả về ở dạng double. |
11 | round() trong Java Trả về long hoặc int gần nhất, như kiểu dữ liệu được chỉ dẫn bởi phương thức, với tham số. |
12 | min() trong Java Trả về số nhỏ nhất trong hai tham số |
13 | max() trong Java Trả về số lớn nhất trong hai tham số |
14 | exp() trong Java Hàm mũ cơ số e. |
15 | log() trong Java Hàm logarit cơ số e |
16 | pow() trong Java Trả về giá trị hàm mũ với cơ số là tham số đầu tiên và mũ là tham số thứ hai |
17 | sqrt() trong Java Trả về căn bậc hai của tham số |
18 | sin() trong Java Trả về sin của giá trị double đã cho. |
19 | cos() trong Java Trả về cos của giá trị double đã cho. |
20 | tan() trong Java Trả về tan của giá trị double đã cho. |
21 | asin() trong Java Trả về arcsin của giá trị double đã cho. |
22 | acos() trong Java Trả về arccos của giá trị double đã cho |
23 | atan() trong Java Trả về arctan của giá trị double đã cho |
24 | atan2() trong Java Biến đổi tọa độ (x, y) thành tọa độ cực (r, theta) và trả về theta. |
25 | toDegrees() trong Java Biến đổi tham số thành giá trị độ đo góc |
26 | toRadians() trong Java Biến đổi tham số thành radian. |
27 | random() trong Java Trả về một số ngẫu nhiên |