Java學(xué)習(xí)—類型

一、基本類型 primitive(原始 簡單)
byte short int long float double char boolean
二、引用類型 reference
String、數(shù)組、類等

  • 包裝類型
    Byte、Short、Integer、Long、Float、Double、Character、Boolean
    對基本類型進(jìn)行封裝,包裝類型對應(yīng)的是類,相應(yīng)地有對象和方法
  • 特殊值
    null
    NullPointerException 空指針異常:當(dāng)引用類型取值為null時(shí),想進(jìn)一步使用它(調(diào)用方法和字段),會拋出錯誤
    判斷是否是null:
    if (xx != null)

三、類型轉(zhuǎn)換

  • 為什么要類型轉(zhuǎn)換
    聲明變量之后,必須賦予變量和聲明類型一致的數(shù)據(jù)類型
    1、基本類型間


    基本類型轉(zhuǎn)換
  • 順箭頭:隱式轉(zhuǎn)換(java自動轉(zhuǎn)換)
byte a = 10;
int b = a;
  • 逆箭頭:強(qiáng)制轉(zhuǎn)換
    在要轉(zhuǎn)換的變量前加括號聲明新類型
int c = 20;
byte d = (byte) c

注意:強(qiáng)制轉(zhuǎn)換有可能損失精度
2、包裝類型和基本類型間


包裝類型和基本類型之間的轉(zhuǎn)換

3、引用類型之間

  • 為什么要轉(zhuǎn)?

(1)向上轉(zhuǎn)型
a.使用父類型統(tǒng)一處理子類型。例如Animal是Cat類和Dog類的父類型,如果一個靜態(tài)方法想同時(shí)對Cat類和Dog類處理,就可以傳入父類型

static void test(Animal a){
};
test(new Cat());
test(new Dog());

b.數(shù)組類型可以使用父類型統(tǒng)一

Animal[] cats = new Animal[] {new Cat(), new Dog()};

(2)向下轉(zhuǎn)型
將轉(zhuǎn)換的父類型轉(zhuǎn)換回來

  • 隱式轉(zhuǎn)換【向上轉(zhuǎn)型】:待轉(zhuǎn)換的對象和目標(biāo)類型之間,要符合“是一個”的關(guān)系
    注意:轉(zhuǎn)換之后,對象還是對象,只是用父類型來表示它


    關(guān)系舉例
// 貓類型轉(zhuǎn)換為動物類型和Object類型
Animal a = new Cat()
Object b = new Cat()
  • 強(qiáng)制轉(zhuǎn)換【向下轉(zhuǎn)型】:與基本類型的強(qiáng)制轉(zhuǎn)換一樣,加括號聲明
    注意:強(qiáng)制轉(zhuǎn)換需要滿足轉(zhuǎn)換對象和目標(biāo)類型之間符合“是一個”關(guān)系,舉例如下
// 隱式轉(zhuǎn)換
Animal a = new Cat();
Object b = new Cat();

// 強(qiáng)制轉(zhuǎn)換
Cat c = (Cat) a; //將Animal類強(qiáng)制轉(zhuǎn)換為cat類,因?yàn)閍代表的對象本來就是cat,轉(zhuǎn)換合法
Dog d = (Dog) d; //不合法,a代表的對象是cat
Cat e = (Cat) b; //合法。b是cat對象
Animal g = (Animal)b;合法,b是cat對象,和Animal符合“是一個”關(guān)系

4、不屬于以上三種

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容