很重要
- 包装类的特点
- 装箱与拆箱操作
- 数据类型处理
基本概念
Object类可以接收所有的引用数据类型,因为引用数据类型本质上就是对象,但 是这之中会出现一个新的问题,基本数据类型不是对象,所以发现在最初设计的过程之中,Object类无法接收基本数据类型。所以最早人们提出一点,能不能将基本数据类型包装以下,就采用了如下的代码结构。
范例:最初的包装设计
正是因为有这样的需求提出(参数统一需求),所以从最早的JDK1.0开始就提供有了包装类,用户不再需要包装类的设计,而在JDK1.5之后有解决了包装类参与数学计算的问题。
Java提供的八种基本数据类型的包装类:byte(Byte)、short(Short)、int(Integer)、float(Float)、double(Double)、char(Character)、boolean(Boolean),而这八种包装类也分为两种类型:
- 对象型(java.lang.Object 直接子类):Character、Boolean;
- 数值型(java.lang.Number 直接子类:Byte、Short、Integer、Long、Float、Double。
对于Number类可以发现其本质上是一个抽象类:
而后在这个Number类中提供有六个操作方法: - 从包装类取出byte数据:publicbyte byteValue();
- 从包装类取出int数据:publicabstract int intValue();
- 从包装类取出short数据:publicshort shortValue();
- 从包装类取出long数据:publicabstract long longValue();
- 从包装类取出float数据:publicabstract float floatValue();
- 从包装类取出double数据:publicabstract double doubleValue();
严格来讲,这几个方法都属于拆箱方法;
装箱与拆箱操作
范例:以Integer与int为例
范例:以Double与double为例
所有的装箱与拆箱操作都有固定的模式,然而以上的代码是在JDK1.5之前采用的,现在不可能采用此类方式了,因为太麻烦了。所以从JDK1.5之后提供有自动装箱与拆箱的支持。
范例:以Integer为例
范例:以Boolean为例
实际上有了这种自动装箱的机制存在,就可以使用Object接收基本数据类型了。
范例:利用Object接收int
结论:Object无所不能,所有的数据类型都可以接收。
数据类型转换
包装类本身有一个非常重要的功能,就是字符串转换为基本数据类型的操作。因为在实际的开发之中,用户只要进行输入操作,其类型就是String。
在包装类里面都提供有一些转换方法,以常用的几个类型为主:
** 范例 **:以Integer为例
但是此时有两点注意:
- 如果字符串要转换为数字,其必须有数字所组成;
- 关于比较的问题。
因为在实际开发之中,包装类使用较多,所以在进行“==”比较的时候,要使用equals()方法才是最保险的。
** 范例 **:以Double为例
在使用parseDouble()将字符串转换为double类型的时候,里面的组成可以是整数,也可以是小数。
范例:以Boolean类为例
发现在使用Boolean类型操作的时候比较方便,即使给定的字符串内容不是true或者是false,其最终都会按照false来进行处理。
提示:String与基本数据类型的转换