- Java語言程序設計
- 陸遲編著
- 748字
- 2019-01-09 14:01:51
2.7 包裝類
Java不是純面向對象的程序設計語言,這是因為它有byte、short、int、long、float、double、char和boolean這些基本類型。Java保留它們是出于效率方面的原因。但有時候,確實需要將這些基本類型作為類來處理。例如在調用方法時,若采用int數據作為參數,在被調方法中就不能改變調用方法中對應參數的值,因為它是按值傳送的。但是,若將一個含有int數據的對象作為參數,那么,調用方法中對應參數中int值就可以被改變。
Java語言中專門提供了所謂的包裝類(wrapper class)。這些類將以上基本類型包裝成類。基本類型與它們對應的包裝類見表2.17。
表2.17 基本類型與包裝類

使用包裝類的方法與其他類一樣,定義對象的引用、用new運算符創建對象,用方法來對對象進行操作等。
例如:Ⅰnteger i = new Ⅰnteger(10); // i是 Ⅰnteger類的一個對象,值為10
Ⅰnteger j = new Ⅰnteger(20); // j是 Ⅰnteger類的一個對象,值為20
【例2.7】輸出int類型的最大值與最小值和double類型絕對值的最大值與最小值。
class WrapperDemo{ public static void main(String args[]){ System.out.println(Integer.MAX_VALUE); // int類型的最大值 System.out.println(Integer.MIN_VALUE); // int類型的最小值 System.out.println(Double.MAX_VALUE); // double類型絕對值的最大值 System.out.println(Double.MIN_VALUE); // double類型絕對值的最小值 } }
程序運行結果如下:
2147483647 -2147483648 1.7976931348623157E308 4.9E-324
包裝類中各類的方法雖然不完全相同,但有一些是類似的。下面的例子以 Ⅰnteger類為例,其他類請讀者理解這些類中方法名稱的構成規律,舉一反三。
【例2.8】包裝類Ⅰnteger類常用方法的使用以及與int數據進行混合運算的例子。
class UseWrapper { public static void main(String args[]) { int num = 2005; System.out.println(num + " 的二進制是: " + Integer.toBinaryString(num)); // 轉換十進制數為二進制數 System.out.println(num + " 的八進制是: " + Integer.toOctalString(num)); // 轉換十進制數為八進制數 System.out.println(num + " 的十六進制是: " + Integer.toHexString(num)); // 轉換十進制數為十六進制數 Integer iobj = Integer.valueOf("123"); Integer iobj1 = new Integer(234); Integer iobj2 = new Integer("234"); int i = iobj.intValue(); System.out.println("iobj = " + iobj); System.out.println("i = " + i); System.out.println("iobj1==iobj2 ? " + iobj1.equals(iobj2)); // 比較兩個對象是否相等 iobj = iobj + num; // int數據和Integer數據可以混合運算 System.out.println("iobj = " + iobj); num = iobj + num; System.out.println("num = " + num); } }
程序運行結果如下:
2005 的二進制是: 11111010101 2005 的八進制是: 3725 2005 的十六進制是: 7d5 iobj = 123 i = 123 iobj1==iobj2 ? true iobj = 2128 num = 4133
推薦閱讀
- Unreal Engine Physics Essentials
- The Supervised Learning Workshop
- 精通Nginx(第2版)
- jQuery Mobile Web Development Essentials(Third Edition)
- Getting started with Google Guava
- 基于免疫進化的算法及應用研究
- Mastering KnockoutJS
- 網站構建技術
- HTML5 APP開發從入門到精通(微課精編版)
- C++編程兵書
- RESTful Web Clients:基于超媒體的可復用客戶端
- 超簡單:用Python讓Excel飛起來(實戰150例)
- Ubuntu Server Cookbook
- FORTRAN程序設計權威指南
- 流程讓管理更高效:流程管理全套方案制作、設計與優化