包装才更美:初识包装类 | 带你学《Java面向对象编程》之五十五

上一篇:教你将好钢用在刀刃上-应用抽象类 | 带你学《Java面向对象编程》之五十四
【本节目标】
通过阅读本节内容,你将了解到包装类的基本概念与实现原理,并能借助包装类解决一些业务逻辑上的问题。
包装类的主要功能是针对于基本数据类型的对象转换而实现的,并且随着JDK版本的更新,包装类的功能也在发生改变,有着更多的支持。

认识包装类

Object类最大的特点是所有类的父类,可以接收所有的数据类型,但是在这个过程中就存在有个问题:基本数据类型并不是一个类,所以现在如果要想将基本数据类型以类的形式进行处理,,那么就需要对其进行包装。
范例:以int数据为例实现一个包装处理的定义

class Int {
    private int data ;    //包装了一个基本数据类型
    public Int(int data) {
        this.data = data ;
    }
    public int intValue() {
       return this.data ;
    }
}
public class JavaDemo {
    public static void main(String args[]) {
        Object obj = new Int(10) ;   //装箱:将基本数据类型保存在包装类之中
        int x = ((Int)obj).intValue() ;   //拆箱:从包装类对象中获取基本数据类型
        System.out.println(x * 2) ;    
    }
}

执行结果:20
基本数据类型进行包装处理后,可以像对象一样进行引用传递,同时也可以使用Object类进行接收,但是如果都已经可以发现基本数据类型与Object类型之间的缺陷,那么JDK也早就发现了同样的问题,所以在JDK1.0的时候就提供有了包装类的概念,基本数据类型一共有八种,所以提供有八种包装类,那么这八种包装类的基本定义如下:

包装才更美:初识包装类   | 带你学《Java面向对象编程》之五十五
图一 包装类

现在可以发现在Java中包装类一共提供两种类型:

  • 对象型包装类:(Object直接子类):Boolean、Character;
  • 数值型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double;

Number是一个抽象类,以后只要是看见了Number都应该明确表示它是一个数字的概念,这个类定义有如下方法:

No. 方法名称 类型 描述
01 public byte byteValue() 普通 从包装类中获取byte数据
02 public short shortValue() 普通 从包装类中获取short数据
03 Public abstract int intValue() 普通 从包装类中获取int数据
04 public abstract long longValue() 普通 从包装类中获取long数据
05 public abstract float floatValue() 普通 从包装类中获取float数据
06 public abstract double doubleValue() 普通 从包装类中获取double数据

Number类中的方法就是直接提供有获取包装类中基本数据类型的功能,一共只定义了六个方法。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:带你领会JDK的灵活拆装 | 带你学《Java面向对象编程》之五十六
更多Java面向对象编程文章查看此处

上一篇:使用抽象类的注意事项 | 带你学《Java面向对象编程》之五十三


下一篇:Solr服务安装(Windows)