java 中封装类有哪些_java中封装类(一)

java中封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void

其中Void对于使用者并无多大意义,也不可以构造任何对象,代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagejava.lang;public final classVoid {public static final Class TYPE = Class.getPrimitiveClass("void");privateVoid() {}

}

View Code

这几个封装类中,以Boolean类型最简单,Character最复杂,Character个人觉得也是整个java中最复杂的一个类,先说Boolean:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagejava.lang;public final class Boolean implements java.io.Serializable,Comparable{public static final Boolean TRUE = new Boolean(true);public static final Boolean FALSE = new Boolean(false);public static final Class TYPE = Class.getPrimitiveClass("boolean");private final booleanvalue;private static final long serialVersionUID = -3665804199014368530L;public Boolean(booleanvalue) {this.value =value;

}publicBoolean(String s) {this(toBoolean(s));

}public static booleanparseBoolean(String s) {returntoBoolean(s);

}public booleanbooleanValue() {returnvalue;

}public static Boolean valueOf(booleanb) {return (b ?TRUE : FALSE);

}public staticBoolean valueOf(String s) {return toBoolean(s) ?TRUE : FALSE;

}public static String toString(booleanb) {return b ? "true" : "false";

}publicString toString() {return value ? "true" : "false";

}public inthashCode() {return value ? 1231 : 1237;

}public booleanequals(Object obj) {if (obj instanceofBoolean) {return value ==((Boolean)obj).booleanValue();

}return false;

}public static booleangetBoolean(String name) {boolean result = false;try{

result=toBoolean(System.getProperty(name));

}catch(IllegalArgumentException e) {

}catch(NullPointerException e) {

}returnresult;

}public intcompareTo(Boolean b) {return compare(this.value, b.value);

}public static int compare(boolean x, booleany) {return (x == y) ? 0 : (x ? 1 : -1);

}private static booleantoBoolean(String name) {return ((name != null) && name.equalsIgnoreCase("true"));

}

}

View Code

Boolean实现了Comparable接口,也就是说boolean类型本身是可以比较的,而对于boolean类型而言,在java中认为true是大于false的。示例如下:

packagedemo.nio;public classBooleanDemo {public static voidmain(String[] args){

System.out.println(Boolean.compare(true, false));//1 代表大于

System.out.println(Boolean.compare(false, false));//0 代表等于

System.out.println(Boolean.compare(true, true));//0 代表等于

System.out.println(Boolean.compare(false, true));//-1 代表小于

}

}

值得一提的是Boolean的hashcode是两个常数,这就保证了不管从何处new的对象,只要内部的value字段值为true,它的hashcode就是1231,为false就是1237。equals方法完全调用了内部value字段的==操作。所有的封装类型都包含了valueOf的静态函数,并且有

两个重载版本,分别是基元类型参数和字符串参数。还有一个parse函数,内部可以通过返回Cache中的数据来避免重复的装箱操作。java中对于Boolean的Cache就是 Boolean.TRUE和Boolean.FALSE两个静态字段。它们是公共类型。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classBooleanDemo {public static voidmain(String[] args){

Boolean b3= Boolean.valueOf(true);

Boolean b4= Boolean.valueOf("true");

Boolean b5= Boolean.parseBoolean("true");

}

}

View Code

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值