我们知道 Java 语言是一个面向对象的编程语言,但是 Java 中的基本数据类型却不是面向对象的,但是我们在实际使用中经常需要将基本数据类型转换成对象,便于操作,比如,集合的操作中,这时,我们就需要将基本类型数据转化成对象,于是就出现了包装类。
包装类,顾名思义就是将什么经过包装的类,那么是将什么包装起来的呢,显然这里是将基本类型包装起来的类。包装类的作用就是将基本类型转成对象,将基本类型作为对象来处理。
这样,我们先自己实现一个简单的包装类,以包装基本类型 int 为例:
// 包装类 MyInt
public class MyInt {
private int number; // 基本数据类型
public Int (int number){ // 构造函数,传入基本数据类型
this.number = number;
}
public int intValue(){ // 取得包装类中的数据
return this.number;
}
}
测试一下这个包装类:
public static void main(String[] args) {
MyInt temp = new Int(100); // 100 是基本数据类型, 将基本数据类型包装后成为对象
int result = temp.intValue(); // 从对象中取得基本数据类型
System.out.println(result);
}
在 Java 中,万物皆对象,所有的操作都要求用对象的形式进行描述。但是 Java 中除了对象(引用类型)还有八大基本类型,它们不是对象。那么,为了把基本类型转换成对象,最简单的做法就是将基本类型作为一个类的属性保存起来,也就是把基本数据类型包装一下,这也就是包装类的由来。包装类就是基本类型名称首字母大写。但Integer 和 Character 例外,它们显示全称,如下面表格所示:
通过阅读 Java8 的 API 官方文档或者看源代码我们可以得知8个包装类的继承关系如下:
通过以上的继承关系图,我们其实可以这样记忆,包装类里面有6个与数字相关的都是继承自 Number 类,而其余两个不是与数字相关的都是默认继承 Object 类。通过看 API 官方文档,我们还可以得知这8个包装类都实现了Serializable , Comparable 接口。比如下图的 Integer 类
public final class Integer extends Number implements Comparable<Integer> {}
从上面的代码我们看出:包装类被 final 修饰,也就是说 Java 内置的包装类是无法被继承的。
看到这里,相信大家已经弄懂了什么是Java包装类了,Java包装类在Java中有很多方面的应用,想学习的小伙伴可以到动力节点在线的免费视频课程学习。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54