Java中的數據類型在定義時就已經確定了,因此不能隨意轉換為其他數據類型,但是Java允許用戶有限度地做類型轉換。數據類型的轉換分為"自動類型轉換"和"強制類型轉換"。
首先我們來看自動類型轉換。自動類型轉換有兩個條件:
(1)轉換前后的數據類型兼容;
(2)轉換后的數據類型的范圍大于轉換前的數據類型。
因此可以得到如下的自動轉換圖。
現在我們看一個例子說明一下自動類型轉換的應用。
代碼中,第一行輸出為int與float的變量運算,按照自動類型轉換,int類型自動轉換為float,所以最終的結果也是float類型。
第二行輸出為int與double的常量運算,按照自動類型轉換,int類型自動轉換為double,所以最終的結果也是double類型。
第三行輸出為兩個int的常量運算,不需要做類型的轉換,因此結果也是一個int常量。
實測的輸出如下,與我們的推斷相同。
對于強制類型轉換,使用的格式如下:
(要轉換的數據類型)變量名稱,轉化的方法則是舍棄掉小類型不存在的位數。
這種強制類型的轉換是在程序代碼中完成的,因此稱為顯式轉換。以下的程序說明了如何在整數與浮點數之間轉換。
其中x是將float型強制轉換為int型,舍棄掉了小數部分,應該得到30
10/3是兩個int類型相除,應該得到整數,而使用強制類型轉換后將10轉為float常量,那么結果就應該是float類型。
實際上,還存在一種自動的轉換,即所有類型都向String類型轉換。String是一個Java內置的字符串類,將一系列字符序列用雙引號""引起來,用來表達一系列char類型的字符的序列。基本類型與String類用+連接就會自動轉為String類(實際上我們已經使用過了)。如下是字符串與基本類型用+連接的示例。
我們可以看出,+可以連接兩個字符串。而且,只要字符串與其他類型相加就會自動轉化為字符串類型。例如int類型的30就會轉為字符串"30",然后再和str相連接。下面的字符串常量也是同樣的道理。我們可以使用一個空字符串+一個任意類型將它轉換為字符串類型(后面有更簡介的辦法)。
我們可以看到:這樣就把其他基本類型轉化為String類型了。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!