七,包装类

Java 中的包装类详解

在 Java 中,基本数据类型(如 int, char, boolean 等)是不可变的,不能被继承或扩展。为了克服这些限制,Java 提供了包装类(Wrapper Classes),它们是基本数据类型的引用类型对应物。每个包装类都提供了相应的构造方法、静态工厂方法、常量和实用工具方法。

包装类的种类

Java 为每个基本数据类型提供了一个对应的包装类:

  • byte - Byte
  • short - Short
  • int - Integer
  • long - Long
  • float - Float
  • double - Double
  • boolean - Boolean
  • char - Character

包装类的方法

Integer

// 创建 Integer 对象
Integer num1 = new Integer(10);
Integer num2 = Integer.valueOf(20);

// 比较两个 Integer 对象
boolean isEqual = num1.equals(num2); // false

// 获取 int 值
int intValue = num1.intValue(); // 10

// 转换为字符串
String toString = num1.toString(); // "10"

// 与字符串相互转换
Integer valueOf = Integer.valueOf("30");
String toString2 = Integer.toString(30);

// 进制转换
String binaryString = Integer.toBinaryString(10); // "1010"
String octalString = Integer.toOctalString(10); // "12"
String hexString = Integer.toHexString(10); // "a"

// 解析字符串为整数
int parseInt = Integer.parseInt("40"); // 40

// 范围检查
boolean isBetween = (10 >= Integer.MIN_VALUE) && (10 <= Integer.MAX_VALUE); // true

Character

// 创建 Character 对象
Character ch1 = new Character('A');
Character ch2 = Character.valueOf('B');

// 比较两个 Character 对象
boolean isEqual = ch1.equals(ch2); // false

// 判断字符是否为大写
boolean isUpperCase = Character.isUpperCase(ch1); // true

// 判断字符是否为小写
boolean isLowerCase = Character.isLowerCase(ch2); // true

// 判断字符是否为数字
boolean isDigit = Character.isDigit('5'); // true

// 转换为大写
char toUpperCase = Character.toUpperCase(ch2); // 'B'

// 转换为小写
char toLowerCase = Character.toLowerCase(ch1); // 'a'

// 获取字符数字值
int digitValue = Character.digit('5', 10); // 5

包装类的自动装箱与拆箱

Java 5 引入了自动装箱(Autoboxing)和拆箱(Unboxing)的特性,允许基本数据类型和它们的包装类之间自动转换。

// 自动装箱
int num = 10;
Integer boxedNum = num; // 自动装箱

// 自动拆箱
int unboxedNum = boxedNum; // 自动拆箱

总结

包装类为基本数据类型提供了引用类型的特性,如对象引用、继承和多态。它们还提供了许多实用的方法,用于执行类型转换、字符串处理和范围检查等操作。自动装箱和拆箱的特性使得基本数据类型和包装类之间的转换更加方便和直观。通过理解和使用包装类,可以更有效地处理 Java 程序中的数据类型转换和操作。

posted @ 2024-10-20 20:37  bjynjj  阅读(16)  评论(0编辑  收藏  举报