上一篇:教你将好钢用在刀刃上-应用抽象类 | 带你学《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中包装类一共提供两种类型:
- 对象型包装类:(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的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学