包装类

Java 的数据类型与异常

Jim White

Java Developer

Java 的 8 种原始类型

Java 的 8 种原始类型是所有数据的基础数据类型。

Java 的数据类型与异常

包装类

  • 每种原始类型都有对应的包装类
原始类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

包装类使原始类型可被当作对象。包装类是 Object 的子类。

Java 的数据类型与异常

包装原始类型

  • 包装类实例只包含一个原始值
    • 例如:Integer 保存一个 int 原始值

包装对象以原始类型作为其值

Java 的数据类型与异常

包装类细节

  • 包装类有额外的字段和方法
    • 关于该类型的字段(如最大值)
    • 处理所包装原始类型的方法
  • 包装类属于基础语言
    • 使用时无需 import(导入稍后介绍)
Java 的数据类型与异常

创建包装对象

  • 将原始类型赋给对应的包装类型变量
    • 语法:Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • 包装对象也可以没有值(null
Integer age = null;
Java 的数据类型与异常

使用包装对象

Integer age = 12;
  • 打印它们
    System.out.println(age);    // 显示 12
    
  • 获取其原始值
    int x = age.intValue();     // x 被赋值为 12
    
  • 对它们执行其他操作
    double z = age.doubleValue();  // z 为 12.0
    String y = age.toString();  // y 被赋值为 "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // smaller 为 -1,因为 12 < 16
    
Java 的数据类型与异常

包装类的静态方法

  • 包装类带有静态方法
  • 用于对相应的原始类型执行操作
    int x = Integer.sum(8,12);  // x 为 20
    int y = Integer.remainderUnsigned(102, 10);  // y 为 2
    
  • 用于在 String 与原始类型间转换
    int z = Integer.parseInt("123");   // z 为 123
    boolean ans = Boolean.parseBoolean("false");  // ans 为 false
    
1 参见 https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html 了解更多 Integer 包装类信息
Java 的数据类型与异常

包装类的静态字段

包装类中的静态字段示例

System.out.println(Integer.MAX_VALUE); // int 的最大值
System.out.println(Integer.MIN_VALUE); // int 的最小值
2147483647
-2147483648
System.out.println(Boolean.TRUE); // 对应原始值 true
System.out.println(Boolean.FALSE); // 对应原始值 false
true
false
Java 的数据类型与异常

包装类的静态字段

包装类中的静态字段示例

System.out.println(Character.SPACE_SEPARATOR);  // 常规空格(如 ' ')的 Unicode
System.out.println(Character.LINE_SEPARATOR); // 换行(如 '\n')的 Unicode
12
13
Java 的数据类型与异常

有用的包装方法

包装方法 返回值
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) 字符的 Unicode 整数值
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() 将 Double 向下取整为 Long 的值
Java 的数据类型与异常

为什么使用包装类?

  • 原始类型没有方法(只有运算)
    • 包装类提供实用方法
      int score = Integer.parseInt("8");
      
  • 包装类使原始类型可作为对象使用,例如放入集合
    • 第 2 章将学习集合。
Java 的数据类型与异常

包装类可以为 null

  • 包装类允许该类型的实例或静态变量为 null
    • 原始类型的实例或静态变量未初始化时有默认值
int herAge; // 未赋值时,age 默认为 0
Integer hisAge = null;
if (hisAge != null) {
  // 当 hisAge 未设置时执行某些操作
}
Java 的数据类型与异常

Passons à la pratique !

Java 的数据类型与异常

Preparing Video For Download...