Java是一种面向对象的编程语言,他提供了8种基本数据类型。但是,这8种基本数据类型并不符合面向对象的编程机制,因为基本数据类型并不具有对象所具有的属性,方法,构造方法等特征。Java之所以提供8中基本数据类型主要是为了保持和c等其他语言的延续性。
Java提供了对8种基本数据类型的“包装”,称之为包装类。包装类符合对象的特征,对基本数据类型进行了封装,提供了一些必要的属性和方法,满足了面向对象编程的要求。每种基本数据类型都有一个包装类与之相对应。
包装类属于对象范畴,而基本数据类型只是表征数值的数据类型,例如,Integer和int是个完全不同的类型,Integer是引用数据类型,int是基本数据类型,Integer作为对象类型具有属性和方法,而int类型则没有。
使用包装类需要进行实例化操作,语法如下:
包装类 类变量=new 包装类(初始化值);
基本数据类型数值和包装类对象之间可以进行相互转换
举一个int与Integer的实例
第6行:由于Interger类型是一个包装类,属于对象范畴,即需要在使用他是实例化其对象。图中横线表示此方法虽然可以使用,但是已经废弃(建议使用自动拆箱与装箱)。
第8行:需要获取其值得时候,可以使用他的xxxValue()方法来取值,如intValue()方法来获取int值。
可以看到控制台输出了相应的数值。相应的,包装类与基本数据类型也可以相互转化。
自动装箱与自动拆箱
自从jdk5.0以后,java提供了自动装箱和自动拆箱的功能。即基本数据类型与包装类之间相互转换的一种简化机制。
自动装箱能够使一个基本数据类型数值直接赋给对应的包装类实例变量,或者转换为Object类实例变量;自动拆箱与之相反,允许一个包装类实例变量直接赋给一个对应的基本数据类型变量。
举个栗子:
包装类转换
包装类主要提供了基本数据类型数值和字符串之间的转换,除了Character类之外的其他包装类都提供了一个parseXxx(String s)的方法,用于将特定字符串转换成基本数据类型的数值。
String类也提供了valueOf()方法把一个基本数据类型的数值转换为字符串。
直接上代码:
代码中我们先将字符串a1用Integer类的parseInt()方法装换为int类型。再使用String类的valueOf()方法将a2转换为String类型。然后在控制台输出。