包装类概述
Java语言是面向对象的,但是Java中的基本数据类型不是面向对象的,为了解决这个不足,所以设计类时为每个基本数据类型设计了一个包装类
包装类位于java.lang包中
基本数据类型与包装类的对应
包装类的用途
1.方便对象的操作
2.包装类包含基本数据类型的属性和相关方法
3.集合是不允许存储基本数据类型的,可以将基本数据类型转换为包装类
使用包装类的小案例
public class Student {
private int sid;
//private Integer sid;
public static void main(String[] args){
Student stu = new Student();
System.out.print(stu.sid);//输出为0
}
}
创建学生对象时,学号默认为0,不符合逻辑,没有存储数据时应该为null,使用包装类可以解决这个问题
基本数据类型转换为包装类的几种方法
1.使用包装类的构造方法
两种构造方法:
1.public Type(type value):以基本数据类型作为参数
2.public Type(String value):以字符串作为参数(Character除外,出现编译错误)
2.使用包装类的valueOf()方法
注意:
1.当boolean类型的构造方法为字符串时,除了“true”(不区分大小写)之外,其他结果都为false
2.当Number类型的构造方法为String类型时,字符串不能为null或者不能转换为相应数据时,会出现运行错误NumberFormatException
包装类转换为基本数据类型的方法
public type typeValue();
Integer integer = new Integer(100);
int iNum = i.intValue();
包装类的常用方法
1.xxxValue():
将包装类转换为基本数据类型
2.toString():
将基本数据类型转换为字符串
更常用的方法:
加上空字符串,强制转换
String s = 100+"";
3.parseXXX():
将字符串转换为基本数据类型(除Character外)
4.valueOf():
将基本数据类型转换为包装类
将字符串转换为包装类(Character除外)
使用包装类应该注意的地方
1.当包装类为Number时,参数必须是数字兼容的字符,否则出现运行错误NumberFormatException
2.当包装类为Boolean类型时,除了参数为“true”(不分大小写)时,其他都为false
3.Character不能将字符串转换为字符
基本数据类型与包装类的自动转换
1.装箱
将基本数据类型自动转换为包装类
Integer intObject = 5;
2.拆箱
将包装类自动转换为基本数据类型
int intValue = new intObject(100);