一包装类
我们对基本数据类型都非常熟悉,例如int、float、double、boolean、char等。基本数据类型是不具备对象的特性
的,比如基本类型不能调用方法、功能简单。为了让基本数据类型也具备对象的特性,Java为每个基本数据类型都提
供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
包装类(如:Integer,Double等)这些类封装一个相应的基本数据类型数值,并为其提供了一系列操作。
基本类型和包装类之间的对应关系:
包装类主要提供了两大类方法:
1将本类型和其他基本类型进行转换的方法;
2将字符串和本类型及包装类互相转换的方法。
二Integer包装类
我们以java.lang.Integer包装类为例,来看下包装类的特性。
Integer包装类的构造方法:
如下代码所示:
Integer包装类的常用方法:
实例:
public class Test{
public static void main(String args[]){
//定义int类型变量,值为86
int score1 = 86;
//创建Integer包装类对象,表示变量score1的值
Integer score2=new Integer(score1);
//将Integer包装类转换为double类型
double score3=score2.doubleValue();
//将Integer包装类转换为float类型
float score4=score2.floatValue();
//将Integer包装类转换为int类型
int score5 =score2.intValue();
//输出结果
System.out.println("Integer包装类:" + score2);
System.out.println("double类型:" + score3);
System.out.println("float类型:" + score4);
System.out.println("int类型:" + score5);
}
}
编译运行结果:
三基本类型和包装类之间的转换
基本类型和包装类之间经常需要互相转换,还是以Integer包装类为例来进行讲解,其他包装类的用法基本相似。
看下面的代码示例:
在JDK1.5引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。那什么是装箱和拆箱
呢?我们分别来看下:
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱。
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱。
实例:
public class Test{
public static void main(String args[]){
//定义double类型变量
double a = 91.5;
//手动装箱
Double b = new Double(a);
//自动装箱
Double c = a;
System.out.println("装箱后的结果为:" + b + "和" + c);
//定义一个Double包装类对象,值为8
Double d = new Double(87.0);
//手动拆箱
double e = d.doubleValue();
//自动拆箱
double f = d;
System.out.println("拆箱后的结果为:" + e + "和" + f);
}
}
编译运行结果:
四基本类型和字符串之间的转换
在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种法:
1使用包装类的toString()方法;
2使用String类的valueOf()方法;
3用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串。
再来看,将字符串转换成基本类型有两种方法:
1调用包装类的parseXxx静态方法;
2调用包装类的valueOf()方法转换为基本类型的包装类,会自动拆箱。
其他基本类型与字符串的相互转化这里不再一一列出,方法都类似。
实例:
public class Test{
public static void main(String args[]){
double m = 78.5;
//将基本类型转换为字符串
String str1 = Double.toString(m);
System.out.println("m 转换为String型后与整数20的求和结果为: "+(str1+20));
String str = "180.20";
//将字符串转换为基本类型
Double a = Double.valueOf(str);
System.out.println("str 转换为double型后与整数20的求和结果为: "+(a+20));
}
}
编译运行结果:
五包装类总结
(1)所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。
Number类的成员方法:
(2)Character类
1转义序列
前面有反斜杠(\)的字符代表转义字符,它对编译器来说是有特殊含义的。下面列表展示了Java的转义序列:
2Character类的成员方法: