Java Number類(lèi)

2022-01-25 12:02 更新

一般情況下我們會(huì)使用數(shù)據(jù)的基本數(shù)據(jù)類(lèi)型:byte、int、short、long、double、float、boolean、char;

對(duì)應(yīng)的包裝類(lèi)型也有八種:Byte、Integer、Short、Long、Double、Float、Character、Boolean;

包裝類(lèi)型都是用 final 聲明了,不可以被繼承重寫(xiě);在實(shí)際情況中編譯器會(huì)自動(dòng)的將基本數(shù)據(jù)類(lèi)型裝箱成對(duì)象類(lèi)型,或者將對(duì)象類(lèi)型拆箱成基本數(shù)據(jù)類(lèi)型;如下:

public static void main(String[] args) {
	int num1 = 1;
	//將基本數(shù)據(jù)類(lèi)型裝箱成對(duì)象包裝類(lèi)型
	Integer num2 = num1;
	Integer num3 = 3;
	//將對(duì)象數(shù)據(jù)類(lèi)拆箱
	int num4 = num3;
}

Number 類(lèi)是 java.lang 包下的一個(gè)抽象類(lèi),提供了將包裝類(lèi)型拆箱成基本類(lèi)型的方法,所有基本類(lèi)型(數(shù)據(jù)類(lèi)型)的包裝類(lèi)型都繼承了該抽象類(lèi),并且是final聲明不可繼承改變;

package java.lang;

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();
    }

    private static final long serialVersionUID = -8742448824652078965L;
}
包裝類(lèi) 基本數(shù)據(jù)類(lèi)型
Boolean boolean
Byte byte
Short short
Integer int
Long long
Character char
Float float
Double double

這種由編譯器特別支持的包裝稱(chēng)為裝箱,所以當(dāng)內(nèi)置數(shù)據(jù)類(lèi)型被當(dāng)作對(duì)象使用的時(shí)候,編譯器會(huì)把內(nèi)置類(lèi)型裝箱為包裝類(lèi)。相似的,編譯器也可以把一個(gè)對(duì)象拆箱為內(nèi)置類(lèi)型。Number 類(lèi)屬于 java.lang 包。

下面是一個(gè)裝箱與拆箱的例子:

public class Test{

   public static void main(String args[]){
      Integer x = 5; // boxes int to an Integer object
      x =  x + 10;   // unboxes the Integer to a int
      System.out.println(x); 
   }
}

以上實(shí)例編譯運(yùn)行結(jié)果如下:

15

當(dāng)x被賦為整型值時(shí),由于 x 是一個(gè)對(duì)象,所以編譯器要對(duì)x進(jìn)行裝箱。然后,為了使x能進(jìn)行加運(yùn)算,所以要對(duì)x進(jìn)行拆箱。


Java Math類(lèi)

Java 的 Math 包含了用于執(zhí)行基本數(shù)學(xué)運(yùn)算的屬性和方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)。

Math 的方法都被定義為 static 形式,通過(guò) Math 類(lèi)可以在主函數(shù)中直接調(diào)用。

實(shí)例

public class Test {  
    public static void main (String []args)  
    {  
        System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
        System.out.println("0度的余弦值:" + Math.cos(0));  
        System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
        System.out.println("1的反正切值: " + Math.atan(1));  
        System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
        System.out.println(Math.PI);  
    }  
}

以上實(shí)例編譯運(yùn)行結(jié)果如下:

90 度的正弦值:1.0
0度的余弦值:1.0
60度的正切值:1.7320508075688767
1的反正切值: 0.7853981633974483
π/2的角度值:90.0
3.141592653589793


Number & Math 類(lèi)方法

下面的表中列出的是常用的 Number 類(lèi)和 Math 類(lèi)的方法:

序號(hào) 方法與描述
1 xxxValue()
將number對(duì)象轉(zhuǎn)換為xxx數(shù)據(jù)類(lèi)型的值并返回。
2 compareTo()
將number對(duì)象與參數(shù)比較。
3 equals()
判斷number對(duì)象是否與參數(shù)相等。
4 valueOf()
返回一個(gè)Integer對(duì)象指定的內(nèi)置數(shù)據(jù)類(lèi)型
5 toString()
以字符串形式返回值。
6 parseInt()
將字符串解析為int類(lèi)型。
7 abs()
返回參數(shù)的絕對(duì)值。
8 ceil()
返回大于等于( >= )給定參數(shù)的的最小整數(shù),類(lèi)型為雙精度浮點(diǎn)型。
9 floor()
返回小于等于(<=)給定參數(shù)的最大整數(shù) 。
10 rint()
返回與參數(shù)最接近的整數(shù)。返回類(lèi)型為double。
11 round()
返回一個(gè)最接近的int、long型值。
12 min()
返回兩個(gè)參數(shù)中的最小值。
13 max()
返回兩個(gè)參數(shù)中的最大值。
14 exp()
返回自然數(shù)底數(shù)e的參數(shù)次方。
15 log()
返回參數(shù)的自然數(shù)底數(shù)的對(duì)數(shù)值。
16 pow()
返回第一個(gè)參數(shù)的第二個(gè)參數(shù)次方。
17 sqrt()
求參數(shù)的算術(shù)平方根。
18 sin()
求指定double類(lèi)型參數(shù)的正弦值。
19 cos()
求指定double類(lèi)型參數(shù)的余弦值。
20 tan()
求指定double類(lèi)型參數(shù)的正切值。
21 asin()
求指定double類(lèi)型參數(shù)的反正弦值。
22 acos()
求指定double類(lèi)型參數(shù)的反余弦值。
23 atan()
求指定double類(lèi)型參數(shù)的反正切值。
24 atan2()
將笛卡爾坐標(biāo)轉(zhuǎn)換為極坐標(biāo),并返回極坐標(biāo)的角度值。
25 toDegrees()
將參數(shù)轉(zhuǎn)化為角度。
26 toRadians()
將角度轉(zhuǎn)換為弧度。
27 random()
返回一個(gè)隨機(jī)數(shù)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)