一、了解包装类
在Java中一直提倡一个概念:一切皆对象,那么结合object的特点实际上就非常容易理解(在全部都是对象时,Object才可以达到统一参数的目的),但是在这之中就出现了一个不和谐的地方:基本数据类型不是对象,所以最早时部分人把基本数据类型做一个简单包装。类似如下结构:
以上代码简单,但是比较麻烦,针对基本数据类型给出了系统包装类:int(Integer),char(Character),byte(Byte),short(Short),long(Long),float(Float),double(double),boolean(Boolean)。
但是以上八中包装类分为两组:Boolean、Character;
1)对象型包装类(直接继承了object类):
2)数值型包装类:(继承了Number类):Byte、Short、Integer、Long、Float、Double;
Number本身是一个抽象类,再此类中提供了有如下的方法:byteValue(),shortValue()、longValue()、doubleValue()、floatValue()、这六个方法就是就包装类里取出被包装的基本数据。
二、装箱与拆箱
现在对于数据就提供有基本数据类型与之对应的包装类型,而这两者的转换定义如下:
1. 装箱操作:将基本数据类型变为包装类对象,一般利用各个包装类的构造方法进行。
2.拆箱操作:将包装类中所含的基本类型取出,一般都使用Number类定义的方法。
范例:以int和Integer为例:
范例:以double和Double为例
Integer和double都属于数值型的包装类,而对于包装类还存在有对象型。
范例:以boolean和Boolean为例
以上代码都是在jdk1.5之前使用的,一切的操作必须手工的装箱和拆箱,但从jdk1.5后开始增加了自动装箱和自动拆箱的功能,所有的包装类对象也可以直接进行各种数学计算。
范例:自动装箱和自动拆箱
所以在以后开发中没有必要再去调用构造或者调用XXXValue()方法进行操作了。既然有了自动装箱和拆箱操作,则意味着基本数据类型可以直接被object接受。
范例:使用object接受double数据
目前为止,object可以接受所有的参数了。