- 好好學(xué)Java:從零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)
- 歐陽燊
- 808字
- 2022-07-27 19:15:01
4.2.3 布爾類型包裝
因?yàn)闊o論是整數(shù)還是小數(shù),它們的運(yùn)算操作都是類似的,所以只要學(xué)會(huì)了Integer的用法,其他數(shù)值包裝類型即可一并掌握。但是對(duì)于布爾類型boolean來說,它定義的是true和false的布爾值,并非1、2、3之類的數(shù)字,因此還需專門的包裝類型Boolean來包裝boolean變量。
Boolean作為包裝類型,與數(shù)值包裝類型相似,它也擁有3種變量初始化方式。由于布爾包裝類型的初始化代碼雷同數(shù)值包裝類型,這里不再贅述,具體代碼示例如下(完整代碼見本章源碼的src\com\method\pack\PackBoolean.java):
// 初始化包裝變量的第一種方式:直接用等號(hào)賦值 Boolean boolPack=true; // 初始化包裝變量的第二種方式:調(diào)用包裝類型的valueOf方法 //Boolean boolPack=Boolean.valueOf(true); // 初始化包裝變量的第三種方式:使用關(guān)鍵字new創(chuàng)建新變量 //Boolean boolPack=new Boolean(true); System.out.println("boolPack="+boolPack);
要把布爾包裝變量轉(zhuǎn)換成基本類型的布爾變量,同樣不能通過強(qiáng)制類型轉(zhuǎn)換,而是必須調(diào)用包裝變量的booleanValue方法,如此方能得到布爾類型的變量值。與數(shù)值包裝類型保持一致的還有equals方法,該方法相當(dāng)于關(guān)系運(yùn)算符“==”,可用于判斷兩個(gè)布爾包裝變量是否相等。booleanValue方法和equals方法的調(diào)用代碼示例如下:
// 把包裝變量轉(zhuǎn)換成布爾變量,需要調(diào)用包裝變量的booleanValue方法 boolean bool=boolPack.booleanValue(); System.out.println("bool="+bool); boolean equalResult=boolPack.equals(false); // 包裝變量的equals方法相當(dāng)于關(guān)系運(yùn)算符“==” System.out.println("equalResult="+equalResult);
除此之外,布爾包裝變量之間允許使用邏輯運(yùn)算符,包括非運(yùn)算符“!”、與運(yùn)算符“&”、或運(yùn)算符“|”、異或運(yùn)算符“^”。當(dāng)然,這些邏輯運(yùn)算符早就用于基本布爾類型,倘若包裝布爾類型只有這點(diǎn)本事,不免拾人牙慧。所以包裝類型另外提供了幾個(gè)邏輯方法,如logicalAnd方法相當(dāng)于“邏輯與”運(yùn)算符“&”,logicalOr方法相當(dāng)于“邏輯或”運(yùn)算符“|”,logicalXor方法相當(dāng)于“邏輯異或”運(yùn)算符“^”。通過方法包裝了常見的邏輯運(yùn)算操作,這樣Java代碼更像是常人看得懂的編程語言,而非只有數(shù)學(xué)家才能看得懂的邏輯式子。
下面是布爾包裝類型使用幾個(gè)邏輯方法的代碼例子:
boolean a=true, b=false; // 布爾包裝類型的logicalAnd方法相當(dāng)于“邏輯與”運(yùn)算符“&” boolean andResult=Boolean.logicalAnd(a, b); System.out.println("andResult="+andResult); // 布爾包裝類型的logicalOr方法相當(dāng)于“邏輯或”運(yùn)算符“|” boolean orResult=Boolean.logicalOr(a, b); System.out.println("orResult="+orResult); // 布爾包裝類型的logicalXor方法相當(dāng)于“邏輯異或”運(yùn)算符“^” boolean xorResult=Boolean.logicalXor(a, b); System.out.println("xorResult="+xorResult);
- C及C++程序設(shè)計(jì)(第4版)
- 一步一步學(xué)Spring Boot 2:微服務(wù)項(xiàng)目實(shí)戰(zhàn)
- Apache Spark 2 for Beginners
- UML+OOPC嵌入式C語言開發(fā)精講
- 人臉識(shí)別原理及算法:動(dòng)態(tài)人臉識(shí)別系統(tǒng)研究
- WordPress Plugin Development Cookbook(Second Edition)
- Functional Kotlin
- Microsoft Azure Storage Essentials
- Clean Code in C#
- 程序員的成長(zhǎng)課
- Keil Cx51 V7.0單片機(jī)高級(jí)語言編程與μVision2應(yīng)用實(shí)踐
- 微信小程序開發(fā)邊做邊學(xué)(微課視頻版)
- 軟件設(shè)計(jì)模式(Java版)
- Moodle 3.x Developer's Guide
- 狼書(卷2):Node.js Web應(yīng)用開發(fā)