官术网_书友最值得收藏!

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);
主站蜘蛛池模板: 彰化县| 犍为县| 康马县| 敦化市| 瓮安县| 托克逊县| 文昌市| 房产| 阿拉善右旗| 横峰县| 攀枝花市| 宜君县| 满洲里市| 安庆市| 明光市| 宁国市| 舒城县| 南通市| 镇原县| 西宁市| 贵南县| 甘洛县| 达孜县| 利川市| 鄄城县| 金华市| 巴彦淖尔市| 六安市| 靖宇县| 广西| 孝感市| 洪洞县| 宜章县| 南丹县| 沙田区| 广汉市| 卢龙县| 文昌市| 孟村| 寿阳县| 保康县|