Java™ 教程(數字)

數字

本節首先討論java.lang包中的Number類,它的子類,以及使用這些類的實例化而不是原始數字類型的狀況。html

本節還介紹了PrintStreamDecimalFormat類,它們提供了編寫格式化數字輸出的方法。java

最後,討論了java.lang中的Math類,它包含數學函數,以補充語言中內置的運算符,該類具備三角函數,指數函數等方法。segmentfault

數字類

使用數字時,大多數時候在代碼中使用基元類型,例如:api

int i = 500;
float gpa = 3.65f;
byte mask = 0xff;

可是,有理由使用對象代替基元,Java平臺爲每一個基元數據類型提供包裝類,這些類將基元「包裝」在對象中。一般,包裝由編譯器完成 — 若是在須要對象的地方使用基元,編譯器會在包裝器類中爲你封裝基元,相似地,若是在指望基元時使用數字對象,則編譯器會爲你拆箱對象,有關更多信息,請參閱自動裝箱和拆箱。多線程

全部數字包裝類都是抽象類Number的子類:oracle

objects-numberHierarchy.gif

注意:這裏沒有討論其餘四個 Number的子類, BigDecimalBigInteger用於高精度計算, AtomicIntegerAtomicLong用於多線程應用程序。

有三個緣由可使用Number對象而不是基元:dom

  1. 做爲指望對象的方法的參數(一般在操做數字集合時使用)。
  2. 使用由類定義的常量(如MIN_VALUEMAX_VALUE),它們提供數據類型的上限和下限。
  3. 使用類方法將值轉換爲其餘基本類型或從其餘基本類型轉換值,轉換爲字符串和從字符串轉換,以及在數字系統之間進行轉換(十進制、八進制、十六進制、二進制)。

下表列出了Number類的全部子類實現的實例方法。函數

方法 描述
byte byteValue()
short shortValue()
int intValue()
long longValue()
float floatValue()
double doubleValue()
將此Number對象的值轉換爲返回的基本數據類型。
int compareTo(Byte anotherByte)
int compareTo(Double anotherDouble)
int compareTo(Float anotherFloat)
int compareTo(Integer anotherInteger)
int compareTo(Long anotherLong)
int compareTo(Short anotherShort)
將此Number對象與參數進行比較。
boolean equals(Object obj) 肯定此數字對象是否等於參數。
若是參數不爲null而且是相同類型且具備相同數值的對象,則方法返回true
Java API文檔中描述了DoubleFloat對象的一些額外要求。

每一個Number類都包含其餘方法,這些方法可用於數字與字符串之間的轉換和用於數字系統之間的轉換,下表列出了Integer類中的這些方法,其餘Number子類的方法相似:spa

方法 描述
static Integer decode(String s) 將字符串解碼爲整數,能夠接受十進制、八進制或十六進制數字的字符串表示做爲輸入。
static int parseInt(String s) 返回一個整數(僅十進制)
static int parseInt(String s, int radix) 返回一個整數,給定十進制、二進制、八進制或十六進制(radix分別等於十、二、8或16)數字的字符串表示做爲輸入。
String toString() 返回表示此Integer值的String對象。
static String toString(int i) 返回表示指定整數的String對象。
static Integer valueOf(int i) 返回包含指定基元值的Integer對象。
static Integer valueOf(String s) 返回一個包含指定字符串表示形式值的Integer對象。
static Integer valueOf(String s, int radix) 返回一個Integer對象,該對象包含指定字符串表示形式的整數值,並使用radix值進行解析。
例如,若是s = "333"radix = 8,則該方法返回等於八進制數333的十進制整數。

數字總結

你可使用其中一個包裝類 — ByteDoubleFloatIntegerLongShort — 來在對象中包裝許多基本類型,Java編譯器會在必要時自動爲你包裝(裝箱)基元,並在必要時再將它們拆箱。線程

Number類包括常量和有用的類方法,MIN_VALUEMAX_VALUE常量包含該類型對象可包含的最小值和最大值,byteValueshortValue和相似方法將一種數字類型轉換爲另外一種數字類型,valueOf方法將字符串轉換爲數字,toString方法將數字轉換爲字符串。

要格式化包含輸出數字的字符串,可使用PrintStream類中的printf()format()方法,或者,你可使用NumberFormat類使用模式自定義數字格式。

Math類包含用於執行數學函數的各類類方法,包括指數、對數和三角函數方法,Math還包括基本算術函數,例如絕對值和舍入,以及用於生成隨機數的方法random()


上一篇:抽象方法和類

下一篇:格式化數字打印輸出

相關文章
相關標籤/搜索