包装类的使用
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));
}
}