一,Number
java.lang.Number
类是抽象类,用于表示各种数值类型的对象。它是 Java 中所有数值类型的包装类的超类。Number
类主要有以下几个特点和作用:
-
抽象类:
Number
类是一个抽象类,不能直接实例化,但可以用作其他数值类型的基类。 -
超类:
Number
类是整个数值类型包装类层次结构的超类。Java 中的所有数值包装类(Integer
、Long
、Float
、Double
、Byte
和Short
)都直接或间接继承自Number
类。 -
提供常用方法:
Number
类提供了一些抽象方法,用于获取不同数值类型的值,如doubleValue()
、floatValue()
、intValue()
、longValue()
等。这些方法允许将一个数值对象转换为对应的基本数据类型的值。 -
通用性:由于
Number
类是各种数值包装类的超类,因此它可以作为一个通用的引用类型,用于存储各种数值类型的对象。这种通用性使得在需要处理不同数值类型的场景中更加灵活。 -
自动装箱与拆箱:在 Java 中,基本数据类型可以自动装箱为对应的包装类型,而包装类型也可以自动拆箱为对应的基本数据类型。因此,
Number
类的子类(如Integer
、Double
等)可以与基本数据类型之间自由转换,提供了更方便的数值处理方式。
总之,Number
类在 Java 中扮演着重要的角色,它为处理不同数值类型提供了一种统一的接口,使得数值操作更加灵活和方便。
原文介绍
这里有说到请阅读官网文档
官方文档
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Number.html
我们得以看出Number还是有很多孩子的
AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, DoubleAccumulator, DoubleAdder, Float, Integer, Long, LongAccumulator, LongAdder, Short
接下来我来进行验证到底是真孩子还是假冒伪劣产品
果然,它的孩子还是挺多的。言归正传,开始介绍哈哈哈
二,Number的方法
当然,让我们从头开始逐个介绍java.lang.Number
类中的方法。
-
byte byteValue()
- 返回值类型:
byte
- 方法说明:将
Number
对象转换为byte
类型的值。 - 用法示例:
Number num = 10; byte b = num.byteValue(); System.out.println(b); // 输出 10
- 返回值类型:
-
short shortValue()
- 返回值类型:
short
- 方法说明:将
Number
对象转换为short
类型的值。 - 用法示例:
Number num = 20; short s = num.shortValue(); System.out.println(s); // 输出 20
- 返回值类型:
-
int intValue()
- 返回值类型:
int
- 方法说明:将
Number
对象转换为int
类型的值。 - 用法示例:
Number num = 30; int i = num.intValue(); System.out.println(i); // 输出 30
- 返回值类型:
-
long longValue()
- 返回值类型:
long
- 方法说明:将
Number
对象转换为long
类型的值。 - 用法示例:
Number num = 40; long l = num.longValue(); System.out.println(l); // 输出 40
- 返回值类型:
-
float floatValue()
- 返回值类型:
float
- 方法说明:将
Number
对象转换为float
类型的值。 - 用法示例:
Number num = 50; float f = num.floatValue(); System.out.println(f); // 输出 50.0
- 返回值类型:
-
double doubleValue()
- 返回值类型:
double
- 方法说明:将
Number
对象转换为double
类型的值。 - 用法示例:
Number num = 60; double d = num.doubleValue(); System.out.println(d); // 输出 60.0
- 返回值类型:
这些方法允许在不同类型的数字之间进行转换,方便在程序中进行数字类型的操作和处理。请注意,Number
类本身是抽象的,因此不能直接实例化,但可以通过其子类如Integer
、Double
等来实例化对象并使用这些方法。
其实讲到这里其实已经差不多了。父类定义好之后,子类可以进行重写或者使用父类的,这个我就不一一介绍是什么原因了,毕竟这个文章能看懂的也是Java工程师了,如果不懂得话后期我单独写一篇文章什么是继承(extends)和实现(implements)