本章目标
掌握包装类的作用
掌握包装类的自动装箱及自动拆箱的操作
掌握包装类的转换操作

 

包装类介绍
在Java的设计中提倡一种思想:“一切皆对象”,那么这样一来就出现了一个矛盾,从数据类型的划分中可以知道JAVA中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?此时,就需要将基本数据类型进行包装,将八种基本类型变为一个类的形式,那么这也就是包装类的作用。 

包装类

包装类_java


 

包装类的说明
在以上所列的类中,除了Integer和Character定义的名称与基本类型定义的名称相差较大,其他的六种类型的名称都是很好掌握的。而且读者可以从JDK文档中发现包装类中的继承关系:
—— Integer、Byte、Float、Double、Short、Long都属于Number类的子类,Number类本身提供了一系列的返回以上六种基本数据类型的操作。
——Character属于Object的直接子类。
——Boolean属于Object的直接子类。

 

Number类的定义

那么Number类是一个抽象类,主要是将数字包装类中内容变为基本数据类型,主要操作方法如下。

包装类_java_02


 

装箱与拆箱(Integer、Float为例)
装箱:
——将一个基本数据类型变为包装类,这样的过程称为装箱操作
拆箱:
——将一个包装类变为基本数据类型这样的过程称为拆箱操作

 

装箱及拆箱操作

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();//拆箱:将一个包装类变为基本数据类型
	}
/*结果:
 * */
}

 

自动装箱及拆箱操作
在JDK 1.5之后提供了自动的装箱及拆箱操作

public class WrapperDemo03 {
	public static void main(String[] args) {
		Integer i = 30;//自动装箱成 Integer
		Float f = 30.0f;//自动装箱成 Float
		int x = i;//自动装箱成 int
		float y =f;//自动装箱成 float
	}
/*结果:
 * */
}

 

包装类应用(Integer、Float为例)
包装类在实际中用得最多的还在于字符串变为基本数据类型的操作上,例如:将一个全由数字组成的字符串变为一个int或float类型的数据。在Integer和Float类中分别提供了以下的两种方法:
——A、Integer类(字符串转int型)
————public static int parseInt(String s) throws NumberFormatException
——B、Float类(字符串转float型)
————public static float parseFloat(String s) throws NumberFormatException

 

字符串变为基本数据类型

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);//将字符串变为 Float 型
		System.out.println("整数乘方:"+x+"*"+x+"="+(x*x));
		System.out.println("整数乘方:"+f+"*"+f+"="+(f*f));
	}
/*结果:
 * 整数乘方:30*30=900
 * 整数乘方:30.3*30.3=918.08997
 * */
}