为弥补基本数据类型在面向对象方面的欠缺,Java语言中引入了封装类(Wrapper Classes)——针对各种基本数据类型均提供了相应的引用数据类型。
封装类均被定义为final,因此不能被继承,一旦创建,内容不能再改变。
public class Demo1 {
public static void main(String[] args) {
Byte byte1 = new Byte((byte) 1);
//NumberFormatException
Integer i = new Integer("12");
System.out.println(i.toString());
System.out.println(i.intValue());//int
Boolean flag = new Boolean("true");
System.out.println(flag);
//java.lang.NumberFormatException
String s="100s";
//面向对象
Double d = Double.valueOf(s);
//基本数据类型
double dd = Double.parseDouble(s);
}
}
每个包装类的构造方法都有几种重载形式,归纳如下:
所有的封装类都可以用和它对应的基本类型数据作为参数,来构造它们的实例。例如:
Boolean bln=new Boolean(true); Byte b=new Byte(byte 1);
除Character类以外,其他的包装类都可以以字符串为参数来构造它们的实例。例如:
Integer I =new Integer(“123”); Double d=new Double(“123.45D”);
当Boolean类的构造方法的参数为String类型时,如果该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false。例如:
System.out.println(newBoolean(“true”)); //打印true System.out.println(new Boolean(“aaaa”)); //打印false
当Byte、Short、Integer、Long、Float和Double类的构造方法的参数为String类型时,字符串不能为null,并且该字符串必须可以解析为相应的基本类型的数据,否则虽编译通过,但运行时回抛出NumberFormatException运行时异常。
Java语言用封装类来把基本类型数据转换为对象。每个Java基本类型在java.lang包中都有一个相应的封装类。