包装类,包装类的自动装箱和自动拆箱
目标
1)包装类的作用,
2)掌握包装类的自动装箱和自动拆箱操作。
3)掌握包装类的转换操作。
具体内容
一切皆对象,八种基本数据类型不是对象。
把Int包装成一个类,这样的一个类就可以以对象的形式操作基本数据类型。
包装类
这八种包装类所继承的父类不全都相同。
1)Integer ,Byte,Float,Double,Short,Long都属于Number类的子类,Number类本身提供了一系列的返回
以上六种基本数据类型的操作。
2)Character属于Object子类。
3)Boolean属于Object子类。
Number类的作用
那么Number类是一个抽象类,主要是将数字包装类中内容变成基本数据类型。
主要操作方法如下:
以Integer和Float为例:
装箱及拆箱
1)将基本数据类型变成包装类称为装箱。
2)将包装类的类型变为基本数据类型称为拆箱。
public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i = new Integer(x) ; // 装箱:将基本数据类型变为包装类 int temp = i.intValue() ;// 拆箱:将一个包装类变为基本数据类型 } };
下面再以小数为例:
public class WrapperDemo02{ public static void main(String args[]){ float f = 30.3f ; // 基本数据类型 Float x = new Float(f) ; // 装箱:将基本数据类型变为包装类 float y = x.floatValue() ;// 拆箱:将一个包装类变为基本数据类型 } };
在JDK1.5之前,对于程序本身来说,包装类不能直接进行“+,-,*,/,++,--”等操作,因为是一个类,
所以不能这么操作。
但是在JDK1.5之后,对程序的包装类功能进行了改变,增加了自动装箱和自动拆箱功能,而且,可以使用包装类直接进行数字运行。
自动装箱和自动拆箱也就是,可以自动由int-->Integer类型转变,而自动拆箱就是自动由Integer-->int转变。
public class WrapperDemo03{ public static void main(String args[]){ Integer i = 30 ; // 自动装箱成Integer Float f = 30.3f ; // 自动装箱成Float int x = i ; // 自动拆箱为int float y = f ; // 自动拆箱为float } };
在包装类中还有一个最大的特点,
将字符串变为指定的数据类型。
如:讲一个全由数字组成的字符串变为一个int或者float类型的数据。
在Integer和Float类中分别提供了以下两种方法:
1)Integer类(字符串转int类型):public static int parseInt(String s);
2)Float类(字符串转float类型):public static float parseFloat(String s);
static关键字修饰的方法,直接由类调用
注意:这里的String s,必须由数字组成。
public class WrapperDemo04{ public static void main(String args[]){ String str1 = "30" ; // 由数字组成的字符串 String str2 = "30.3" ; // 由数字组成的字符串 int x = Integer.parseInt(str1) ; // 将字符串变为int型 float f = Float.parseFloat(str2) ; // 将字符串变为int型 System.out.println("整数乘方:" + x + " * " + x + " = " + (x * x)) ; System.out.println("小数乘方:" + f + " * " + f + " = " + (f * f)) ; } };
运行结果:
整数乘方:30 * 30 = 900
小数乘方:30.3 * 30.3 = 918.08997
从初始化参数获取字符串:
public class WrapperDemo05{ public static void main(String args[]){ int x = Integer.parseInt(args[0]) ; // 将字符串变为int型 float f = Float.parseFloat(args[1]) ; // 将字符串变为int型 System.out.println("整数乘方:" + x + " * " + x + " = " + (x * x)) ; System.out.println("小数乘方:" + f + " * " + f + " = " + (f * f)) ; } };
总结
1)java中有8种基本数据类型的包装类,可以将基本数据类型以类的形式操作。
2)基本数据类型变为包装类的过程,称为装箱,将包装类变为基本数据类型的过程称为拆箱。
3)在JDK1.5之后,提供了自动装箱和自动拆箱功能。
4)使用包装类,可以将字符串实现基本数据类型的转换操作。