1. 为什么需要包装器类型
首先我们先来看一个表格。
以上是java中七种的基本类型以及对应的包装器对象类型,为什么java非要给七种基本类型构造出相应的包装器类型呢,这里有个重要的原因:
将基本类型包装成对象以后,扩大了基本类型所具有的操作(后面将举例说明),更是JAVA面向对象的体现
2.基本类型扩展为包装器类型后的常用操作
基本类型包装为包装器类型后,不仅它们之间转化非常方便,而且出现了许多非常实用的方法,使我们可以将基本类型当做对象类型使用。
a.构造函数
除了Character类之外,所有包装器类型都有两个构造函数,一个是以要构建的基本类型为参数:
Integer i1 = new Integer(42);
一个是以String类型为参数,
Integer i2 = new Integer("123");
Character只有一个构造函数
Character c1 = new Character('a');
注意,如果传递的参数和要转换的基本类型不匹配,则会报
java.lang.NumberFormatException
错误。如:
Integer i1 = new Integer("ee");
ee不能转换为一个Int类型,所以出错。
b.valueOf()方法
大部分包装器类都提供两个静态的方法,用于构建包装器类型,注意,这里传递的参数都是String类型,而且可以指定以什么进制转换,如:
Integer i1 = Integer.valueOf("123");
Integer i2 = Integer.valueOf("11101",2);
注意,默认为10进制。
c.xxxValue()方法
将包装类型转换为基本类型,如:
//i1,c1都为上面定义的包装器类型
int a = i1.intValue();
char b = c1.charValue();
d.parseXxx()方法
另一种获得基本类型的方法,如:
int a = Integer.parseInt("1234");
//以16进制转换。
int b = Integer.parseInt("3333",16);
e.toString()
包装类型都重写了toString()方法,如:
Double a = new Double(123.3);
//123.3
System.out.println(a);
注意,这里a等价于a.toString()