JAVA基礎 資料型別轉換

2021-08-20 19:42:15 字數 2008 閱讀 2763

在進行程式設計的時候,常常會遇到資料型別轉換的問題,現在就進行相應的總結。

八種基本資料型別

除了boolean型別以外所有的基本資料型別在進行不同資料型別的運算的時候都要進行型別轉換。

一:自動型別轉換

只要型別轉換滿足相容型別,且為從低級別轉向高階別(從小向大)轉換,就可以進行自動型別轉換。

**注意:**char型別,從其他型別轉換到char型別需要進行強制型別轉換。從char型別轉換到其他型別是可以進行自動轉換的,但轉到byte和short需要進行強制轉換。

二:強制型別轉換

當需要將高階別的型別轉換到低階別的型別的時候需要用到強制型別轉換,但是這樣做會損失精度。例如將float型別的數值2.1轉換到int型別的數值時,就會轉換成2,此時的精度就會損失。

注意:強制轉換型別的適用範圍仍然是上面八個基本資料型別,強制轉換型別一定要在相容的型別中進行轉換,強制轉換不是將string型別轉換成int型,如果想要轉換上述兩種型別需要使用跨資料型別的方法進行轉化。

三:跨資料型別的轉換

基本資料型別——包裹型別

1. boolean—–boolean

2. char———-character(注意)

3. byte———-byte

4. short———short

5. int————-integer(注意)

6. long———-long

7. float———-float

8. double——double

使用包裹型別的好處就是能夠將乙個基本資料型別的資料轉換成物件的形式,從而使他們可以像物件一樣參與運算和傳遞。這些包裹型別中包含了相對應資料型別的相應的屬性,最大值最小值;還有一些相應的方法操作。

拿integer來舉乙個例子,

integer.paserint()

括號內傳入乙個資料,用這個方法返回的是乙個int型別的數值。

integer.valueof()

括號內同樣傳入乙個資料,用這個方法返回的是integer型別的物件,這個物件的值就是傳進去的資料的值。

其中還有引用型別string的轉換。也有兩個方法:

1:使用tostring()方法可以將資料轉換成sring型別的資料

例如:string a = integer.tostring( int i);呼叫靜態方法tostring()將integer物件轉換成string型別的物件。

2:使用(+」 「),在其他型別的值後邊加入連線符和乙個空字串,就能將這個值轉換成string 型別的資料。

四:向上,向下型別轉換

在學習多型的時候已經詳細介紹了向上型別轉換,就是父類變數指向子類物件。

如:子類sportcar繼承了父類car,並且重寫了父類的方法run();同時又新增了乙個新的方法fly();建立物件: car car1 = new sportcar();此時是向上轉換,即父類變數指向子類物件,此時car1.run()是能夠順利執行的,而且執行的是子類中重寫的run()方法。但是car1.fly()是沒有辦法執行的,因為car1雖然實際指向子類的物件,但是由於car1的變數型別是car所以他只認為自己是乙個普通的car,而不是sportcar因此他也不知道自己還具有fly()這個功能。所以更不能呼叫了。如果想呼叫fly()方法的話,更必須向下轉換,此時必須進行強制型別轉換。

注意:在進行向下型別轉換的時候必須要進行判斷這個物件是不是由子類例項化出來的即:(car1 instanceof sportcar)如果返回為真,則可以進行向下型別轉換,否則不能進行轉化。

Java基礎 資料型別轉換

在實際開發中,我們會經常遇到資料型別轉換。資料型別轉換,顧名思義就是將乙個資料型別轉換成另乙個資料型別,這種轉換方式可以分為兩種,自動型別轉換和強制型別轉換。容量小的資料型別可以自動轉換成容量大的資料型別,這裡的容量指的是這個資料型別的取值範圍。可以用下圖表示除boolean之外七個基本資料型別的轉...

JAVA基礎(五) 資料型別轉換

自動型別轉換指的是表示範圍小的資料型別可以自動轉換為表示範圍大的資料型別。數值型的表示範圍從小到大依次為 byte short int long float double,但必須注意,int float,long float,long double的自動型別轉換,可能會損失精度。此外char型別可以...

Java資料型別轉換

1字串to整型 string num 111 int integer.parseint num 確保num 只有數字字元 1.1byte and string publicclasstestmain publicstaticbytestring2byte string input byte2stri...