Java Integer包装类的用法(附带实例)
Java 是一种面向对象的语言,Java 中的类把方法与数据连接在一起,构成了自包含式的处理单元。但是 Java 中的基本数据类型却不是面向对象的,这在实际使用时存在很多不便之处。
为了弥补这个不足,Java 为每个基本类型都提供了相应的包装类,可以把这些基本类型转换为对象来处理。
Java 语言提供八种基本数据类型,其中包含六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一个布尔类型。这八种基本类型对应的包装类都位于 java.lang 包中,包装类和基本数据类型的对应关系如下表所示。
从表中可以看出,除了 int 和 char 之外,其他基本数据类型的包装类都是将其首字母变为大写。
包装类的用途主要包含两种:
基本数据类型和对应的包装类可以相互转换,具体转换规则如下:
由于包装类的用法非常相似,本节以 Integer 包装类为例介绍包装类的使用方法。
① 以 int 类型变量作为参数创建 Integer 对象。例如:
② 以 String 型变量作为参数创建 Integer 对象。例如:
【实例 1】创建类,实现 int 和 Integer 之间的转换,并通过屏幕输出结果:
Integer 类中的 parseInt() 方法可以将字符串转换为 int 数值,该方法的原型如下:
另一个将字符串转换为 int 数值的方法,其原型如下:
另外,Integer 类中有一个静态的 toString() 方法,可以将整数转换为字符串,原型如下:
【实例】创建类,实现整数和字符串之间的相互转换,并输出结果。
为了方便使用和性能优化,JDK 5.0 之后可以实现自动拆箱装箱,即在进行基本数据类型和对应包装类的转换时自动进行,这大大方便程序员的代码编写。
【实例】创建类,在 int 和 Integer 间进行自动转换。
为了弥补这个不足,Java 为每个基本类型都提供了相应的包装类,可以把这些基本类型转换为对象来处理。
Java 语言提供八种基本数据类型,其中包含六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一个布尔类型。这八种基本类型对应的包装类都位于 java.lang 包中,包装类和基本数据类型的对应关系如下表所示。
基本数据类型 | 包装类 | 基本数据类型 | 包装类 |
---|---|---|---|
byte | Byte | char | Character |
short | Short | float | Float |
int | Integer | double | Double |
long | Long | boolean | Boolean |
从表中可以看出,除了 int 和 char 之外,其他基本数据类型的包装类都是将其首字母变为大写。
包装类的用途主要包含两种:
- 第一,作为和基本数据类型对应的类型存在,方便涉及对象的操作;
- 第二,包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
基本数据类型和对应的包装类可以相互转换,具体转换规则如下:
- 由基本类型向对应的包装类转换称为装箱,例如把 int 包装成 Integer 类的对象;
- 包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。
由于包装类的用法非常相似,本节以 Integer 包装类为例介绍包装类的使用方法。
Java Integer类
Integer 有两个构造方法:① 以 int 类型变量作为参数创建 Integer 对象。例如:
Integer number = new Integer(7);
② 以 String 型变量作为参数创建 Integer 对象。例如:
Integer number = new Integer(“7”);
1) int和Integer类之间的转换
通过 Integer 类的构造方法将 int 装箱,通过 Integer 类的 intValue() 方法将 Integer 拆箱。【实例 1】创建类,实现 int 和 Integer 之间的转换,并通过屏幕输出结果:
public class IntTranslator { public static void main(String[] args) { int number1 = 100; Integer obj1 = new Integer(number1); int number2 = obj1.intValue(); System.out.println("number2=" + number2); Integer obj2 = new Integer(100); System.out.println("obj1 等价于 obj2? " + obj1.equals(obj2)); } }程序执行结果为:
number2=100
obj1 等价于 obj2? true
2) 整数和字符串之间的转换
Java 提供了便捷的方法可以在数字和字符串间进行轻松转换。Integer 类中的 parseInt() 方法可以将字符串转换为 int 数值,该方法的原型如下:
public static int parseInt(String s)其中,s 代表要转换的字符串,如果字符串中有非数字字符,则程序执行将出现异常。
另一个将字符串转换为 int 数值的方法,其原型如下:
public static parseInt(String s,int radix)其中,radix 参数代表指定的进制(如二进制、八进制等),默认为十进制。
另外,Integer 类中有一个静态的 toString() 方法,可以将整数转换为字符串,原型如下:
public static String toString(int i)
【实例】创建类,实现整数和字符串之间的相互转换,并输出结果。
public class IntStringTrans { public static void main(String[] args) { String s1 = "123"; int n1 = Integer.parseInt(s1); System.out.println("字符串 \"" + s1 + "\" 按十进制可以转换为 " + n1); int n2 = Integer.parseInt(s1, 16); System.out.println("字符串 \"" + s1 + "\" 按十六进制可以转换为 " + n2); String s2 = Integer.toString(n1); System.out.println("整数 123 可以转换为字符串 \"" + s2 + "\""); } }程序执行结果为:
字符串 "123" 按十进制可以转换为 123
字符串 "123" 按十六进制可以转换为 291
整数 123 可以转换为字符串 "123"
为了方便使用和性能优化,JDK 5.0 之后可以实现自动拆箱装箱,即在进行基本数据类型和对应包装类的转换时自动进行,这大大方便程序员的代码编写。
【实例】创建类,在 int 和 Integer 间进行自动转换。
public class AutoTrans { public static void main(String[] args) { int m = 500; Integer obj = m; // 自动装箱 int n = obj; // 自动拆箱 System.out.println("n = " + n); Integer obj1 = 500; System.out.println("obj 等价于 obj1? " + obj.equals(obj1)); } }程序执行结果为:
n = 500
obj 等价于 obj1? true