10. 基本类型对应的包装类

一、通过包装类,可以将基本类型的值包装成对象

1. Java提供的8种基本数据类型不支持面向对象的编程机制,主要是为了照顾程序员的传统习惯

2. 基本数据类型的方便性:可以进行简单、有效的常规数据处理

3. 基本数据类型的制约:所有引用类型的变量都继承了Object类,都可当成Object类型变量使用,但基本数据类型的变量就不可以,如果有个方法需要Object类型的参数,但实际需要的值却是2、3.14等数值,这就比较难以处理

4. 包装类的提出,成功解决了8种基本数据类型的变量不能当成Object类型变量使用的问题

基本数据类型和包装类的对应关系
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

 

二、自动装箱 & 自动拆箱

1. 在JDK1.5之前,并没有这两项功能,所以只能通过以下途径实现

  • 基本数据类型变量变成包装类实例:使用对应包装类的valueOf()静态方法
  • 获得包装类实例中包装的基本类型变量:使用包装类提供的xxxValue()实例方法

2. 自动装箱:可以把一个基本类型变量直接赋给对应的包装类变量,或者赋给Object变量

3. 自动拆箱:可以把包装类变量直接赋给一个对应的基本类型变量

		// ex1:直接把一个基本类型变量赋给Integer对象
		Integer inObj = 5;

		// ex2:直接把一个boolean类型变量赋给一个Object类型的变量
		Object boolObj = true;

		// ex3:直接把一个Integer对象赋给int类型的变量
		int it = inObj;

补:有了自动装箱、自动拆箱和包装类的帮助,开发者便可以把基本类型的变量“近似”地当成对象使用,也可以把包装类实例“近似”地当成基本类型的变量使用。

 

三、基本类型变量和字符串之间的转换

1. 字符串类型 → 基本类型

  • 使用包装类提供的parseXxx(String s)静态方法,除Character之外的所有包装类都提供了该方法
  • 使用包装类提供的valueOf(String s)静态方法

2. 基本类型 → 字符串类型

  • 使用String类提供的valueOf(要转换的基本类型 形参名)静态方法
  • 将基本类型变量和""进行连接运算
		// ex1:把字符串转换成int变量
		String str1 = "123";
		int it1 = Integer.parseInt(str1);
		int it2 = Integer.valueOf(str1);
		
		// ex2:把字符串转换成double变量
		String str2 = "3.14";
		double db1 = Double.parseDouble(str2);
		double db2 = Double.valueOf(str2);

		// ex3:把double变量转换成字符串
		String str3 = String.valueOf(3.14);
		String str4 = 3.14 + "";

		// ex4:把boolean变量转换成字符串
		String str5 = String.valueOf(true);
		String str6 = true + "";

 

posted @ 2019-06-10 10:43  GGBeng  阅读(794)  评论(0编辑  收藏  举报