上QQ阅读APP看书,第一时间看更新
4.2.3 布尔类型包装
因为无论是整数还是小数,它们的运算操作都是类似的,所以只要学会了Integer的用法,其他数值包装类型即可一并掌握。但是对于布尔类型boolean来说,它定义的是true和false的布尔值,并非1、2、3之类的数字,因此还需专门的包装类型Boolean来包装boolean变量。
Boolean作为包装类型,与数值包装类型相似,它也拥有3种变量初始化方式。由于布尔包装类型的初始化代码雷同数值包装类型,这里不再赘述,具体代码示例如下(完整代码见本章源码的src\com\method\pack\PackBoolean.java):
// 初始化包装变量的第一种方式:直接用等号赋值 Boolean boolPack=true; // 初始化包装变量的第二种方式:调用包装类型的valueOf方法 //Boolean boolPack=Boolean.valueOf(true); // 初始化包装变量的第三种方式:使用关键字new创建新变量 //Boolean boolPack=new Boolean(true); System.out.println("boolPack="+boolPack);
要把布尔包装变量转换成基本类型的布尔变量,同样不能通过强制类型转换,而是必须调用包装变量的booleanValue方法,如此方能得到布尔类型的变量值。与数值包装类型保持一致的还有equals方法,该方法相当于关系运算符“==”,可用于判断两个布尔包装变量是否相等。booleanValue方法和equals方法的调用代码示例如下:
// 把包装变量转换成布尔变量,需要调用包装变量的booleanValue方法 boolean bool=boolPack.booleanValue(); System.out.println("bool="+bool); boolean equalResult=boolPack.equals(false); // 包装变量的equals方法相当于关系运算符“==” System.out.println("equalResult="+equalResult);
除此之外,布尔包装变量之间允许使用逻辑运算符,包括非运算符“!”、与运算符“&”、或运算符“|”、异或运算符“^”。当然,这些逻辑运算符早就用于基本布尔类型,倘若包装布尔类型只有这点本事,不免拾人牙慧。所以包装类型另外提供了几个逻辑方法,如logicalAnd方法相当于“逻辑与”运算符“&”,logicalOr方法相当于“逻辑或”运算符“|”,logicalXor方法相当于“逻辑异或”运算符“^”。通过方法包装了常见的逻辑运算操作,这样Java代码更像是常人看得懂的编程语言,而非只有数学家才能看得懂的逻辑式子。
下面是布尔包装类型使用几个逻辑方法的代码例子:
boolean a=true, b=false; // 布尔包装类型的logicalAnd方法相当于“逻辑与”运算符“&” boolean andResult=Boolean.logicalAnd(a, b); System.out.println("andResult="+andResult); // 布尔包装类型的logicalOr方法相当于“逻辑或”运算符“|” boolean orResult=Boolean.logicalOr(a, b); System.out.println("orResult="+orResult); // 布尔包装类型的logicalXor方法相当于“逻辑异或”运算符“^” boolean xorResult=Boolean.logicalXor(a, b); System.out.println("xorResult="+xorResult);