我们提供安全,免费的手游软件下载!

安卓手机游戏下载_安卓手机软件下载_安卓手机应用免费下载-先锋下载

当前位置: 主页 > 软件教程 > 软件教程

Java中的包装类及自动装箱/拆箱

来源:网络 更新时间:2024-08-20 09:38:07

包装类是将Java中的八种基本数据类型封装成的类,所有数据类型都能很方便地与对应的包装类相互转换,以解决应用中要求使用数据类型,而不能使用基本数据类型的情况。

例如:

int a = 10; //基本类型的数据
Integer b = new Integer(10); //包装类表示的数据

包装类的特点

包装类具有以下特点:

  • 所有包装类都是final类型(不能派生子类);
  • 实例化包装类对象后,对象中保存的基本类型数据不能再改变;
  • 包装类封装大量有用的方法(如数据类型转换、判断大小写、最大值、最小值等);
  • 除Character类和Boolean类继承于Object类,其他的包装类都继承于Number类。

基本数据类型和包装类

以下是基本数据类型和对应的包装类:

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

包装类的共同点

包装类具有以下共同点:

  1. 包装类中包含的值不改变(包装类实例化后不能修改保存的值);
  2. 包装类有两个构造器,即Integer(int value)和Integer(String s);
  3. 包装类中都有xxxValue()方法,如int intValue()和float floatValue();
  4. 包装类中都有两个ValueOf()方法,即static Integer valueOf(int i)和static Integer valueOf(String s);

自动装箱和拆箱

自动装箱和自动拆箱是基本数据类型与包装类之间的转换机制(通过编译器自动完成)。基本数据类型通过自动装箱转换为包装类,包装类通过自动拆箱转换为基本数据类型。

以下是自动装箱和自动拆箱的例子:

public class Test01 {
    public static void main(String[] args) {
        // 自动装箱 int -> Integer
        int i = 10;
        Integer integer1 = i;
        System.out.println(integer1);

        //自动拆箱 Integer -> int
        int j = 20;
        Integer integer2=j;
        int k = integer2;
        System.out.println(j);
    }
}

包装类型和String类型的相互转换

包装类和String类型之间可以相互转换:

public class Test03 {
    public static void main(String[] args) {
        //包装类Integer -> String
        Integer i = 100; //自动装箱
        //方式1
        String str1 = i+"";
        //方式2 调用Integer的toString()方法
        String str2 = i.toString();
        //方式3 调用静态方法String.valueOf()
        String str3 =String.valueOf(i);

        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);

        //String -> 包装类Integer
        String str4 = "123";
        //方式1 调用包装类的parseXXX()方法
        Integer i2 = Integer.parseInt(str4);//自动拆箱
        //方式2
        Integer i3 = new Integer(str4); //构造器

        System.out.println(i2);
        System.out.println(i3);
    }
}

以上内容来源于韩顺平Java课程,如有错误,欢迎批评指正。