java常用类01_包装类(上)

1.包装类的概述

java是面向对象的语言,但不是“纯面向对象”,基本数据类型就不是对象。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:Object[]数组操作中,我们就需要将基本类型数据转化成对象!

为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。

包装类均位于java.lang包,以下是包装类和基本数据类型的对应关系:

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character

在这八个类名中,除了Integer和Character类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写即可。

在这八个包装类中,除了Character和Boolean之外都是“数值型”,数值型是java.lang.Number的子类。Number类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number类提供了抽象方法:byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubleValue(),意味着所有的数值型包装类都可以互相转型。
在这里插入图片描述
对于包装类说,这些类的用途主要包含两种:

  1. 作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作。

  2. 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)。

2.基本类型&包装类

2.1基本类型转包装类

我们可以通过包装类提供的构造方法,可以把基本类型或字符串类型转化为包装对象。下面以Integer构造方法API截图,其它包装类的构造方法基本相同。
在这里插入图片描述
【示例】实例化包装对象案例

// 基本数据类型转化为包装类对象
Integer i1 = new Integer(12);
Float f2 = new Float(1.23);
// 字符串转化为包装类对象
Integer i2 = new Integer("123");
Float f2 = new Float("1.23");

我们还可以通过包装类的valueOf()静态方法,把字符串或基本数据类型转化为包装对象。

【示例】基本类型或字符串类型转化为包装对象

// 基本数据类型转化为包装类型对象
Double f1 = Double.valueOf(1.23);
Integer i1 = Integer.valueOf(123);
// 字符串类型转化为包装类型对象
Double f2 = Double.valueOf("1.23");
Integer i2 = Integer.valueOf("123");

基本类型转换成包装对象,注意事项:

  1. 针对Character类型,字符串不能转化为Character类型的包装对象。

  2. 针对Boolean类型,只有字符串为“true”(不区分大小写)的时候,转化为包装对象的值才为true,否则都为false。

  3. 数值型的包装类中(不包含Character和Boolean),形参字符串的内容为必须为数值型,否则抛出NumberFormatException异常。

2.1包装类转基本类型

数值型包装类是java.lang.Number的子类,Number类提供了抽象方法:byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubleValue(),意味着所有的数值型包装类都可以互相转型。

【示例】数值型包装对象转化为基本类型

// 实例化一个包装类对象
Double d = new Double("1.23");
// 获取包装对象中的int数值
int num = d.intValue();
// 获取包装对象中的double数值
double dou = d.doubleValue();
// 输出:num:1 , dou:1.23
System.out.println("num:" + num + " , dou:" + dou);

非数值型包装类中,Boolean类型对象只能转化为boolean类型,因为它只有booleanValue()方法;Character类型对象只能转化为char类型,因为它只有charValue()方法。

【示例】非数值型包装对象转化为基本类型

// Boolean对象转化为boolean类型
Boolean b = new Boolean("true");
boolean flag = b.booleanValue();
System.out.println("flag:" + flag); // 输出:flag:true
// Character对象转化为char类型
Character c = new Character('A');
char cc = c.charValue();
System.out.println("char:" + cc); // 输出:char:A

3.基本类型&字符串

3.1字符串转基本类型

通过包装类中的静态方法,把字符串转化成基本数据类型。

包装类 静态方法 方法描述
Byte static byte parseByte(String s) 将字符串参数解析为带符号的十进制byte 。
Short static short parseShort(String s) 将字符串参数解析为带符号的十进制short 。
Integer static int parseInt(String s) 将字符串参数解析为带符号的十进制整数。
Float static float parseFloat(String s) 返回一个新 float值,该值被初始化为用指定字符串表示的值。
Double static double parseDouble(String s) 返回一个新 double值,该值被初始化为用指定字符串表示的值。
Boolean static boolean parseBoolean(String s) 将字符串参数解析为boolean值。

【示例】字符串转基本类型案例

// 字符串转double基本数据类型
System.out.println(Double.parseDouble("123.4") + 0.6); // 输出:124.0
// 字符串转int基本数据类型
System.out.println(Integer.parseInt("123") + 77); // 输出:200

注意事项:

  1. 不能把字符串转化为char类型,因为没有parseChar(String value)方法。

  2. 针对Boolean类型,只有字符串为“true”的时候,转化为基本类型的值才为true,否则都为false。

  3. 整数型包装类,字符串中的内容必须是十进制整数;浮点型包装类中,字符串中的内容必须为十进制整数或浮点数,否则抛出NumberFormatException异常。

3.2基本类型转字符串

通过包装类中的静态方法,也就是toString()方法,把基本数据类型转化成字符串。

包装类 方法 方法描述
所有包装类 String toString() 返回对象的字符串表示形式
Byte static String toString(byte b) 把byte类型转化为字符串返回 。
Short static String toString(short s) 把short类型转化为字符串返回 。
Integer static String toString(int i) 把int类型转化为字符串返回 。
Float static String toString(float f) 把float类型转化为字符串返回 。
Double static String toString(double d) 把double类型转化为字符串返回 。
Boolean static String toString(boolean b) 把boolean类型转化为字符串返回 。
Character static String toString(char c) 把char类型转化为字符串返回 。

【示例】基本数值转成字符串案例

// 把int类型转化成字符串
System.out.println(Integer.toString(123) + "A"); // 输出:"123A"
// 把double类型转化为字符串
System.out.println(Double.toString(123.4) + "A"); // 输出:"123.4A"
// 把char类型转化成字符串
System.out.println(Character.toString('A') + "A"); // 输出:"AA"

思考:还有那些方式能把基本数据类型转化为字符串呢?

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了92 篇原创文章 · 获赞 0 · 访问量 2601

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104752408