Java包裝類和基礎數據類型

雖然Java語言時典型的面向對象編程(OOP),但其中的八種基本數據並不支持面向對象編程,比如int,double,char等基本數據,基本數據類型不具備“對象”的特性——不攜帶屬性、沒有方法可以調用。而使用這些基本數據類型只是爲了迎合人類根深蒂固的習慣,畢竟很多人都是先學了面向過程編程的C語言,然後才學Java語言(話說我自己當初就是學了C,再緊跟着學了Java),並且的確能夠有效的、簡單的進行常規數據處理。

而很多情況下,這種非面向對象技術的做法很帶來很多不便,比如引用了類型數據均繼承了Object類的特性,爲解決一些不便問題,Java爲每種基本數據類型分別設計了對應的類,稱爲包裝類。

基本數據類型及對應的包裝類
基本數據類型對應的包裝類
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

每個包裝類的對象可以封裝成一個對應的基本類型的數據,並提供了其他一些很有用的方法,比如類型轉換。

基本數據類型和與之對應的包裝類可以相互轉換:

  • 由基本類型向對應的包裝類轉換稱之爲裝箱,例如把int包裝成Integer類的對象。
  • 包裝類向對應的基本數據類型轉換稱之爲拆箱,例如把Integer類的對象重新簡化爲int。

包裝類的應用

類型轉換

Integer類有一個靜態的paseInt()方法,可以將字符串轉換爲整數,語法爲:

parseInt(String s, int radix);

s爲要轉換的字符串,radix爲進制,可選,默認爲十進制。

包裝類對象可以爲null

在實際開發中,有些時候,方法傳進去的int類型的參數可能爲null,這時候我們就用到了包裝類Integer,而不能使用基本數據類型int。

簡化了很多方法

比如Integer類中就有很多的進制轉換,我們只需要一條語句就能把一個10進制的數轉換爲2進制。

int num=255;
System.out.println(Integer.toBinaryString(num));//把int類型的num轉換成2進制數
System.out.println(Integer.toOctalString(num));//把int類型的num轉換成8進制數
System.out.println(Integer.toHexString(num));//把int類型的num轉換成16進制數

自動拆箱和裝箱

在Java1.5之前,需要手動new一個包裝類,稱爲手動拆箱裝箱,而在Java1.5之後,可以自動拆箱裝箱,也就是在進行基本數據類型和對應的包裝類轉換時,系統將自動進行。例如:

int m = 500;
Integer obj = m;  // 自動裝箱
int n = obj;  // 自動拆箱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章