Java包装类、拆箱和装箱详解
雖然 Java 語言是典型的面向對象編程語言,但其中的八種基本數據類型并不支持面向對象編程,基本類型的數據不具備“對象”的特性——不攜帶屬性、沒有方法可調用。 沿用它們只是為了迎合人類根深蒂固的習慣,并的確能簡單、有效地進行常規數據處理。
這種借助于非面向對象技術的做法有時也會帶來不便,比如引用類型數據均繼承了 Object 類的特性,要轉換為 String 類型(經常有這種需要)時只要簡單調用 Object 類中定義的toString()即可,而基本數據類型轉換為 String 類型則要麻煩得多。為解決此類問題 ,Java為每種基本數據類型分別設計了對應的類,稱之為包裝類(Wrapper Classes),也有教材稱為外覆類或數據類型類。
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| char | Character |
| float | Float |
| double | Double |
| boolean | Boolean |
每個包裝類的對象可以封裝一個相應的基本類型的數據,并提供了其它一些有用的方法。包裝類對象一經創建,其內容(所封裝的基本類型數據值)不可改變。
基本類型和對應的包裝類可以相互裝換:
- 由基本類型向對應的包裝類轉換稱為裝箱,例如把 int 包裝成 Integer 類的對象;
- 包裝類向對應的基本類型轉換稱為拆箱,例如把 Integer 類的對象重新簡化為 int。
包裝類的應用
八個包裝類的使用比較相似,下面是常見的應用場景。
1) 實現 int 和 Integer 的相互轉換
可以通過 Integer 類的構造方法將 int 裝箱,通過 Integer 類的 intValue 方法將 Integer 拆箱。例如:
運行結果:
n = 500
obj 等價于 obj1?true
2) 將字符串轉換為整數
Integer 類有一個靜態的 paseInt() 方法,可以將字符串轉換為整數,語法為:
s 為要轉換的字符串,radix 為進制,可選,默認為十進制。
下面的代碼將會告訴你什么樣的字符串可以轉換為整數:
運行結果:
123 可以轉換為整數 123
123abc 無法轉換為整數
abc123 無法轉換為整數
abcxyz 無法轉換為整數
3) 將整數轉換為字符串
Integer 類有一個靜態的 toString() 方法,可以將整數轉換為字符串。例如:
運行結果:
s = 500
自動拆箱和裝箱
上面的例子都需要手動實例化一個包裝類,稱為手動拆箱裝箱。Java 1.5(5.0) 之前必須手動拆箱裝箱。
Java 1.5 之后可以自動拆箱裝箱,也就是在進行基本數據類型和對應的包裝類轉換時,系統將自動進行,這將大大方便程序員的代碼書寫。例如:
運行結果:
n = 500
obj 等價于 obj1?true
自動拆箱裝箱是常用的一個功能,讀者需要重點掌握。
四. Java繼承和多態
1.?繼承的概念與實現
2.?Java super關鍵字
3.?繼承中的方法的覆蓋和重載
4.?多態和動態綁定
5.?instanceof 運算符
6.?多態對象的類型轉換
7.?Java static關鍵字
8.?Java final關鍵字
9.?Java Object類
總結
以上是生活随笔為你收集整理的Java包装类、拆箱和装箱详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDBC总复习下
- 下一篇: Java super关键字