Java——包装类

2 包装类

由于 Object 类是所有对象的父类,因此 Object 类型的引用能够接受 Java 中所有类型的对象。但是,对于基本类型,Object 类就无能为力了,毕竟 Object 只能处理对象类型。有没有什么办法,能够让 Object 类处理 Java 中所有的数据类型呢?在 Java 中解决这个问题的方法就是使用包装类。

2.1包装类简介

包装类是为了把基本类型包装成对象类型,从而能被 Object 类型统一管理。

class MyInteger{
    private int value;
    public MyInteger(int value){
        this.value = value;
    }
    public int intValue(){
    return value;
    }
}

这样,我们定义了一个对象类型 MyInteger,这个类型封装了一个 int 类型的 value,从而把一个简单类型 int 类型封装成了一个对象类型。用这个 MyInteger 类的对象,同样可以表示一个整数。

2.2 六种转换

三种类型之间的六种转换。所谓的三种类型,指的是字符串类型、基本类型、包装类类型

1包装类和基本类型之间的转换

以 Integer 和 int 为例,由 int 转换为 Integer的方式,是利用 Integer 的构造方法,以 int 作为参数创建相应的 Integer 对象。

int i1 = 10;//int 类型转化为 Integer 类型

Integer ii1 = new Integer(i1);

直接调用 Integer 对象的 intValue 方法,用这个方法就可以把 Integer 类型转换为 int 类型

int i2 = ii1.intValue();

2 String 类型与包装类之间的转换

字符串转为包装类类型非常简单,同样是利用包装类的构造方法

String str = “123”;

Integer ii2 = new Integer(str);

包装类类型转为字符串类型也非常简单,直接调用包装类对象的 toString 方法,就能返回该对象的字符串表现形式,也就是把对象转化为字符串。

String str2 = ii2.toString();

3字符串类型和基本类型之间转换

基本类型转换成字符串

一种方式是使用 String 类中定义的一个静态方法:valueOf。因为这个方法是静态方法,因此可以用 String 类名来直接调用。在 String 类中定义了一系列重载的 valueOf 方法,分别表示把不同的基本类型转换为字符串类型。

int i = 10;

String str3 = String.valueOf(i);

第二种方式,我们可以利用字符串的特性,使用字符串加法来完成基本类型和字符串类型之间的转换。

String str4 = “” + i;

由于字符串类型加上任何其他类型,结果都是字符串,因此我们可以用一个空字符串加上一个整数,从而把这个整数转化为一个字符串。

字符串转换成基本类型

以 int 为例,如果要转换的话,可以调用Integer 类的 parseInt 方法,把字符串转化为 int。

int i = Integer.parseInt(“123”);

2.3 JDK5.0 新特性:自动封箱拆箱

在 JDK5.0 中,由系统自动完成基本类型和包装类之间的转换。

//把 int 类型的 10 转换为 Integer 类型

Integer myInteger = new Integer(10);

//把 Integer 类型的 myInteger 转换为 int 类型

int i = myInteger.intValue();

而对于 JDK5.0 以后的版本来说,下面的代码也能编译通过:

//把 int 类型直接赋值给 Integer 类型

Integer myInteger = 10;

//把 Integer 类型直接赋值给 int 类型

int i = myInteger;

上面的这两行代码,可以把 int 类型的变量直接赋值给 Integer 类型,也可以把 Integer类型的变量直接赋值给 int 类型。也就是说,可以对 Integer 类型和 int 类型自动进行转换。需要注意的是,这个新特性只是语法方面的改变,而底层实现的原理,并没有发生改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值