包装类(装箱与拆箱)

1、包装类的主要功能是针对基本数据类型的对象装换而实现的,随着JDK版本的更新,包装类的功能也在发生着改变,有了更多的支持。

2、前面学到,Object类是所有类的父类,并且可以接收所有的数据类型。但是基本数据类型并不是一个类,如果想要将基本数据类型以类的形式进行处理,那么就需要对其进行包装。

【重要】

package com.demo;
// 以int数据为例实现一个包装处理的定义
class Int {
    private int data ; //包装了一个基本数据类型
    public Int(int data) {
        this.data = data ;
    }
    public int intValue() {
        return this.data ;
    }
}
public class BaoZhuang {
    public static void main(String[] args) {
        //装箱——将基本数据类型保存在包装类之中
        //Int temp = new Int(10) ;
        Object obj = new Int(10) ;
        //拆箱——从包装类对象中能够获取基本数据类型
        //int x = temp.intValue() ;
        int x = ((Int)obj).intValue() ;
        System.out.println(x * 2) ;        
    }
}

基本数据类型进行包装处理后可以像对象一样进行引用传递,同时也可以使用Object类进行接收。

3、基本数据类型有8中,所以提供有八种包装类。如public abstract class Number

在Java中包装类有两种类型:

对象性包装类(Object直接子类):Boolean、Character

数值型的包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double;

4、Number类中的一些抽象方法(共6个):

public byte byteValue()    普通    从包装类中获取byte数据

public short shortValue()    普通    从包装类中获取short数据

public abstract int intValue()    普通    从包装类中获取int数据

public abstract long longValue()    普通    从包装类中获取long数据

public abstract float floatValue()    普通    从包装类中获取float数据

public abstract double doubleValue()   普通    从包装类中获取double数

5、装箱与拆箱操作

基本数据类型的包装类是为了基本数据类型转为对象提供的,这样对于基本数据类型与包装类之间就有了数据装箱数据拆箱操作。

数据装箱:将基本数据类型保存到包装类之中,一般可以利用构造方法完成

Integer类

Double类

Boolean类

……

数据拆箱:从包装类中获取基本数据类型

数值型包装类已经由Number类定义了拆箱方法

Boolean型:booleanValue()

举例:

Integer obj = new Integer(10 ); //装箱

int num = obj.intValue() ; //拆箱

 

Boolean obj = new Boolean(true) ; //装箱

boolean bl = obj.booleanValue(); //拆箱

从JDK1.9之后,所有包装类中提供的构造方法就变为了过期处理,不建议用户继续使用,因为从JDK1.5之后为了方便处理提供了自动的装箱与拆箱操作。

例如:

Integer obj = 10 ; //自动装箱,此时不再关心构造方法

int num = obj ; //自动拆箱

obj++ ; //包装类对象可以直接参与数学运算

除了提供这种自动的数学运算支持外,使用自动装箱的最大好处是可以实现Object接收基本数据类型

Object obj  = 19.2 ; //double自动装箱为Double,向上转型为Object类

double num = (Double) obj  ;  //向下转型为包装类,再自动拆箱

在进行包装类相等判断时一定要使用equals()完成,因为包装类本身需要考虑占位长度,如果超过一位内容需要用equals()判断,如果不超过一位可以使用“==”判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值