声明:此内容参考书籍《疯狂java讲义第二版》
java是面向对象的变成语言,但它也包含了8种基础数据类型,这8种基础数据类型不支持面向对象的机制,基础数据类型的数据也不具备“对象”的特性,没有成员变量、成员方法可以被调用。java之所以提供这8种基础数据类型,主要是为了照顾程序员传统的习惯。
这8种基础数据类型带来了一定的方便性,但在某些时候,会有一些制约,例如所有引用数据类型对象都继承了Object类,都可当成Object类型变量使用。但基础数据类型的变量就不可以,如果有个方法需要Object类型的参数,但实际需要的值却是2,3这样的数值,这可能就比较难处理。
为了解决这个问题,java提供了包装类的概念,为这8种基础数据类型分别定义了相对应的引用类型,并称为基础数据类型的包装类。
从以上可以看到,除了int和char有点例外之外,其他的都是将首字母大写即可。
下面程序示范了如何将基本数据类型转换成对应的包装类对象,以及如何把一个字符串包装成包装类
如果希望获得包装类对象中的包装的基本数据类型变量,则可以使用包装类提供的xxxValue()实例方法。例如:
以上可以看出基础数据类型和包装类类型转换比较麻烦,jdk1.5后提供了自动装箱和自动拆箱功能。自动装箱就是可以把一个基础数据类型变量直接赋给对应的包装类变量,或者赋给Object 变量;自动拆箱允许直接把包装类对象直接赋值给一个对应的基本类型变量。
包装类还可以实现基础类型变量和字符串的转换。字符串类型的值转换成基础类型的值有两种方式:
(1)利用包装类提供的parseXxx(String s)静态方法(除了Character之外的所以包装类都提供类该方法)
(2)利用包装类提供的Xxx(String s)构造器。
String类提供了多个重载的valueOf()方法,用于将基础数据类型转换成字符串。