包装类的出现
8种基本类型的优点
8种基本数据类型带来了一定的方便性,例如进行简单、有效的常规数据处理。
8种基本类型的缺点
1、8种基本数据类型不支持面向对象的编程机制。基本数据类型的数据也不具备“对象”的特性(没有成员变量、方法可以被调用)。
2、基本数据类型变量不能当做Object类型变量使用。(所有引用类型的变量都继承了Object类,都可当成Object类型变量使用。)
实际中的问题
如果某个方法需要Object类型的参数,但实际需要的值却是2、3、5等数值,这可能就比较难处理。
包装类应运而生
自动装箱和自动拆箱
public static void wrapper(){
// 直接将一个基本类型变量赋给Integer对象
Integer inObj = 5;
// 直接将一个Boolean类型变量赋值给一个Object类型的变量
Object boolObj = true;
// 直接把一个Integer对象赋值给int类型变量
int it = inObj;
if(boolObj instanceof Boolean){
// 先把Object对象强制类型转换为Boolean类型,再赋值给boolean变量。
boolean b = (Boolean)boolObj;
System.out.println(b);
}
}
包装类实现基本类型变量和字符串之间的转换。
方式一:
利用包装类提供的parseXxx(String s)静态方法(除了Character之外的所有包装类都提供了该方法)。
方式二:
利用包装类提供的Xxx(String s)构造器。
将数字字符串转换为原来的数字
public static void wrapper1(){
/**======将数字字符串转换为原来的数字=======*/
String intStr = "123";
// 把一个特定字符串转换为int变量
int it1 = Integer.parseInt(intStr);
int it2 = new Integer(intStr);
// 把一个特定字符串转换为float变量
String floatStr = "4.56";
float ft1 = Float.parseFloat(floatStr);
float ft2 = new Float(floatStr);
// 把一个特定字符串转换为double变量
String dbStr = "3.333";
double db1 = Double.parseDouble(dbStr);
double db2 = new Double(dbStr);
}
将数字转换为数字字符串
public static void wrapper2(){
/**======将数字转换为数字字符串=======*/
// 把一个float变量转换为String变量
String ftStr = String.valueOf(2.345f);
// 把一个double变量转换为String变量
String dbStr1 = String.valueOf(3.344);
// 把一个boolean变量转换为String变量
String boolStr = String.valueOf(true);
}
将数字转换为数字字符串简单方法
int intNum = 5;
String intStr1 = 5+"";