包装类(封装类)
1、包装类的理解:
① Java提供了8种基本数据类型对应的包装类(封装类),使得基本数据类型的变量具有类的特征,有了类的特点,就可以调用类中的方法。
② 需要掌握的:基本数据类型、包装类、String类三者之间的相互转换。
2、包装类有:
byte → Byte
short → Short
int → Integer
long → Long
float → Float
double → Double
boolean → Boolean
char → Character
注:所有包装类的父类都是 Number 。
3、基本数据类型与包装类之间的转换:
① 基本数据类型转换成对应的包装类 :调用包装类的构造器。
例如:
int num = 10;
Integer i1 = new Integer(num);
System.out.println(i1.toString());
Integer i2 = new Integer("123");
System.out.println(i2.toString());
② 包装类转换成对应的基本数据类型 :调用包装类的xxxValue()。(“xxx”是指对应的基本数据类型名称)
例如:
Integer in = new Integer(12);
int i = in.intValue();
System.out.println(i);
4、自动装箱和自动拆箱(JDK 5.0 新特性):
① 自动装箱:基本数据类型转换成对应的包装类。
例如:
int num1 = 12;
Integer in = num; //自动装箱
② 自动拆箱:包装类转换成对应的基本数据类型。
例如:
int num2 = in; //自动拆箱 (in 是上个例子中的变量)
5、基本数据类型(或对应的包装类)与String类之间的相互转换:
① 基本数据类型(包装类)转换成String类:调用String类重载的valueOf()方法。
例如:
float f1 = 12.3f;
String str = String.valueOf(f1); //转换过程
② String类转换成基本数据类型(包装类):调用包装类的parseXxx()方法。(“xxx”是指对应的基本数据类型名称)
例如:
String str = "123";
int num = Integer.parseInt(str); //转换过程,可能会报:NumberFormatException异常
注:Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128 ~ 127范围的整数。如果使用自动装箱的方式,给Integer赋值的范围在-128 ~ 127范围内时,可以直接使用数组中的元素,不用再去new了。主要目的:提高效率。
本文来自博客园,作者:萧若風,转载请注明原文链接:https://www.cnblogs.com/XiaoRuoFeng/p/16402049.html