包装类的使用
1.相关概念
- java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
- 需要掌握 基本数据类型、包装类、String三者之间的相互转换
2.基本数据类型和包装类的互转
-
基本数据类型转换包装类,
调用包装类的构造器
实现(实际开发中直接使用自动装箱
)package com.lmwei.p16; import org.junit.Test; public class WrapperTest { @Test public void test1() { int num = 10; Integer int1 = new Integer(num); System.out.println(int1.toString()); Integer int2 = new Integer("1234"); System.out.println(int2.toString()); Float f1 = new Float(12.3f); Float f2 = new Float("12.3"); System.out.println(f1); System.out.println(f2); Boolean b1 = new Boolean(true); // 忽略大小写 Boolean b2 = new Boolean("TrUe"); System.out.println(b1); System.out.println(b2); // false System.out.println(new Boolean("true123")); Order order = new Order(); System.out.println(order.isMale);// false System.out.println(order.isFemale);//null } } class Order { boolean isMale; // 类类型 Boolean isFemale; }
-
包装类转换为基本数据类型,
调用包装类的xxxValue()方法
实现(开发中直接使用自动拆箱
),package com.lmwei.p16; import org.junit.Test; public class WrapperTest { @Test public void test2() { Integer int1 = new Integer(12); // 通过调用xxxValue()方法的方式将包装类转换为基本数据类型 int in1 = int1.intValue(); System.out.println(in1 + 2); Float f1 = new Float(11.8); float f2 = f1.floatValue(); System.out.println(f2 + 2); } } class Order { boolean isMale; // 类类型 Boolean isFemale; }
3.JDK 5.0 新特性,自动装箱和拆箱
package com.lmwei.p16;
import org.junit.Test;
public class WrapperTest {
@Test
public void test3() {
//自动装箱 基本数据类型 -> 包装类的对象
int num2 = 10;
Integer i2 = num2;
boolean b1 = true;
Boolean b2 = b1;
// 自动拆箱 包装类的对象 -> 基本数据类型
int num3 = i2;
}
}
4.基本数据类型、包装类 和String类型的互转
package com.lmwei.p16;
import org.junit.Test;
public class WrapperTest {
@Test
public void test4() {
// 基本数据类型、包装类->String 类型,调用String重载的valueOf()
int num1 = 10;
//方式1 连接运算
System.out.println(num1 + "");
//方式2 调用String的valueOf()
float f1 = 12.3f;
System.out.println(String.valueOf(f1));
Double d1 = 12.4;
System.out.println(String.valueOf(d1));
}
@Test
public void test5() {
// String 类型->基本数据类型、包装类,调用包装类的parseXxx()
String str1 = "123";
// 注意可能报错 NumberFormatException 例如String str1 = "123";
System.out.println(Integer.parseInt(str1 + 1));
String str2 = "true";
System.out.println(Boolean.parseBoolean(str2));
}
}