1. 程式人生 > >關於Java包裝類的理解

關於Java包裝類的理解

在學習了一段時間的Android之後,深知在Java基礎體系中部分知識的缺失而使我在學習過程中碰到了許多不能理解的概念,就在最近,我打算重新學習Java語言的一些基礎,就我現在大概幾個星期系統的學習,Java語言體系大概分為幾個方面:

1.常量與變數
2.運算子
3.條件控制語句
4.陣列
5.方法
6.面向物件的概念
7.封裝
8.繼承
9.多型
10.異常處理
11.String字串
12.包裝類

我是通過慕課網進行學習的,裡面的Java語言是比較系統的
(以下是連結!!!)
http://www.imooc.com/course/programdetail/pid/31


在這裡我就不分開講了,今天主要講的是Java中一個很重要的部分–包裝類
我將包裝類分為幾個部分:
1.什麼是包裝類
2.基本型別與包裝類之間的轉換
3.基本型別與字串之間的轉換

1.什麼是包裝類

在我們學習常量與變數的部分時,要宣告一個變數的話,應該怎麼做?
變數型別 變數名 = 變數值;
我們要先宣告變數需要一個變數型別–也就是資料型別,還有變數名,然後再進行初始化
那麼這裡有一個知識點:資料型別
資料型別分為兩個:基本資料型別與引用資料型別
基本資料型別包括:數值型,字元型與布林型
引用資料型別包括:類,陣列與介面
那麼在我們宣告變數所使用的Int,double,float,char,boolean…都是屬於基本型別的
(在這裡關於堆疊記憶體問題不進行討論!!!)
咦,那麼我們命名字串的時候所使用的String是什麼?
String是宣告一個字串的資料型別,但是跟其他的比如Int,double有什麼區別呢?
String在資料型別中是屬於引用型別,是Java為了方便程式設計師進行操作所定義的一個類,String所宣告的變數,就是建立了一個物件,它可以使用String類中的一些內建方法,但是,宣告Int,double的變數,只是一個變數並不具有物件的性質。
那麼宣告Int,double這些基本型別可不可以建立物件呢
Java為Int,double,float,char等資料型別定義了對應的包裝類
這些包裝類可以為數值型,字元型與布林型建立物件,使其具有物件的性質,並且可以呼叫一些方法
以下是基本型別與所對應的包裝類:

2.基本型別與包裝類之間的轉換

那麼基本型別可以轉換為包裝類嗎?應該怎麼轉換呢?
那麼基本型別是可以轉換為包裝類的,那麼我們將分為兩個方面解說:
(1)基本型別轉換為包裝類
(2)包裝類轉換為基本型別
那麼在這裡還有一個概念,Java後續版本中加入了裝箱與拆箱
那麼這裡該怎麼理解裝箱跟拆箱?
裝箱是指基本型別轉換為包裝類,使其具有物件的性質
拆箱是指包裝類轉換為基本型別的值
(1)基本型別轉換為包裝類,也就是裝箱
裝箱也分為兩個,一個是手動裝箱,一個是自動裝箱
那麼我們從程式碼來理解

int a = 0;
Integer b = new Integer(a);//手動裝箱
Integer c = a;//自動裝箱

那麼怎麼理解呢
手動裝箱的意思,就是你必須手動的new一個物件
那麼自動裝箱,就是程式預設將其自動的建立一個物件

(2)包裝類轉換為基本型別
拆箱也分為兩個,手動拆箱與自動拆箱

Double d = 9.2;
double e = d.doubleValue();//手動拆箱
double f = d;//自動拆箱

這個跟上面同理
手動與自動的將包裝類轉換為基本型別

3.基本型別與字串之間的轉換

String類中內建的方法很多,所以會有時候我們會選擇將基本型別轉換為字串然後使用內建的方法
那麼這裡我們也分為兩個方面:
(1)基本型別轉換為字串
(2)字串轉換為基本型別

(1)基本型別轉換為字串
基本型別轉換為字串的方法有三種方法:
①使用包裝類中的toString()方法
②使用String類的valueOf()方法
③加入空字元

String i = Integer.toString(h);//使用包裝類中的toString()方法
String i = String.valueOf(h);//使用String類的valueOf()方法
String i = h + "";//加入空字元

(2)字串轉換為基本型別
包裝類轉換為基本型別有兩種方法:
①使用包裝類中的parseXXX()方法
②使用包裝類中的valueOf()方法

int j = Integer.parseInt(i);//使用包裝類中的parseXXX()方法
int j = Integer.valueOf(i);//使用包裝類中的valueOf()方法

關於基本型別與字串之間的轉換就不多說原理了,這個主要還是轉換方法需要知道
這裡我們需要理解的包裝類中主要的包裝類的原理與轉換

因為是小白,所以我的理解有點淺,希望各位前輩大神輕噴。