首页 理论教育 Java程序设计中的包装类及装箱过程

Java程序设计中的包装类及装箱过程

时间:2023-11-16 理论教育 版权反馈
【摘要】:为了解决这种问题,JDK 中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。表6-12基本数据类型及其对应的包装类续表表6-11 中列举了8 种基本数据类型及其对应的包装类。其中,除了Integer 和Character类,其他包装类的名称和基本数据类型的名称一致,只是类名的第一个字母需要大写。下面以int 类型的包装类Integer 为例,学习一下装箱的过程,如文件6-19 所示。

Java程序设计中的包装类及装箱过程

在Java 中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入。为了解决这种问题,JDK 中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。在Java 中,每种基本类型都有对应的包装类,具体如表6-12 所示。

表6-12 基本数据类型及其对应的包装类

续表

表6-11 中列举了8 种基本数据类型及其对应的包装类。其中,除了Integer 和Character类,其他包装类的名称和基本数据类型的名称一致,只是类名的第一个字母需要大写。

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。

【例6.19】下面以int 类型的包装类Integer 为例,学习一下装箱的过程,如文件6-19 所示。

文件6-19 Example19.java

执行结果

20

Integer 类除了具有Object 类的所有方法外,还有一些特有的方法,如表6-13 所示。

表6-13 Integer 类的特有方法

续表

表6-12 中列举了Integer 的特有方法,其中的intValue()方法可以将Integer 类型的值转为int 类型,这个方法可以用来进行拆箱操作。

【例6.20】下面通过一个案例来演示intValue()方法的使用,请查看文件6-20。

文件6-20 Example20.java

执行结果

sum = 30

【例6.21】下面通过一个案例来演示parseInt()方法的使用,该案例实现了在屏幕上打印“*”矩形,其中宽和高分别设为20 和10,如文件6-21 所示。(www.xing528.com)

文件6-21 Example21.java

执行结果

本节主要讲解了Integer 的具体用法。掌握了Integer 类的用法,自然也就学会了其他几个包装类的用法,但在使用包装类时,需要注意以下几点:

① 包装类都重写了Object 类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值。

· Integer i = Integer.valueOf("123"); // 合法

· Integer i = Integer.valueOf("12a"); // 不合法

② 除了Character 外,包装类都有valueOf(String s)方法,可以根据String 类型的参数创建包装类对象,但参数字符串s 不能为null,而且字符串必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。具体示例如下:

· Integer i = Integer.valueOf("123"); // 合法

· Integer i = Integer.valueOf("12a"); // 不合法

③ 除了Character 外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型的数据。参数s 不能为null,而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。具体示例如下:

switch 语句支持字符串类型。

第2 章讲解switch 条件语句时,演示了switch 语句表达式中接收int 类型的例子。在JDK7中,switch 语句的表达式增加了对字符串类型的支持。由于字符串的操作在编程中使用频繁,这个新特性的出现为Java 编程带来了便利。

【例6.22】通过下面案例来演示一下在switch 语句中使用字符串进行匹配,如文件6-22所示。

文件6-22 Example22.java

执行结果

星期三

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈