Java零基础入门-Number & Math 类
一、概述
在日常使用java进行项目开发的过程中,经常会遇到要使用对象而不是内置数据类型的场景,那么基于这类场景,我们应该如何去解决呢?需要使用基本教学运算时又该如何去使用?所以今天我要给大家带来的内容就是有关于它的,具有很好的参考价值。
废话不多说,咱们直接步入正题吧。
二、本期教学目标
- 掌握内置数据类型
- 掌握Number抽象类
- 掌握Number子类
- 理解装箱 | 拆箱概念
- 掌握Math类
- 了解Math类的常用方法Api
- ...
三、正文
1️⃣内置数据类型
通常,我们在使用数字时,我们都可能都使用内置的数据类型,比如:int、long、float、double等,具体使用比如:
对于基本数据类型的使用,这在日常开发中都很常见,对吧,但是对于某些场景,就得使用到其对应的封装类,为了解决这个问题,其实java有提供一整套数据类型封装类,其中就有(Integer、Long、Byte、Double、Float、Short)等。
具体对于关系请看如下:
2️⃣Number抽象类
对于数值类型,比如byte、short、integer等,他们的父类都是Number类(抽象类),位于java.lang包。具体可以看下如下示意图:
对于抽象类而言,不能直接被实例化,要实例化其具体的子类才行。但子类等可以使用父类的所有方法。而且为Number的子类有提供将表示的数值转换为对于基础数据类型的方法,共有6个,比如对于int ,有intValue()方法,返回一个int类型的值,再比如double Double(),返回一个double类型的数值类型。代码演示:
执行结果如下:
明显可以看到该被实例化的num,可以有各种方法
3️⃣Number子类
对于Number类,它拥有如下六种子类,具体如下:Double、Float、Byte、Short、Integer 以及 Long,抽象类它不能直接被实例化,只能实例化其具体的子类。
因此,这里会有个概念出现,具体示例请看如下:
可想而知,输出值肯定是521. 可你细看,明明是个Integer封装类型,却能跟int类型进行相加,而且编译还不报错,其实啊,这就涉及到了类型拆箱,啥意思?请看第4点介绍。
4️⃣装箱 | 拆箱
何为装箱?又何为拆箱?说说了装箱就是自动将基本数据类型转换为包装类。
而拆箱就是自动将包装类转换为基本数据类型。
而对于上方,正是当sum被指定成一个整数型时,编译器对e进行装箱,因为e是一个对象,然后为了e能进行运算与1相加,就对e进行了拆箱。
5️⃣Math类
对于该类,顾名思义,就是一个数学类,位于 java.lang 包中,包含各种数学公式,比如提供了初等指数、对数、取平方根、求三角函数等方法。
由于它的构造方法都是私有的(private),想使用它就不能直接创建Math类对象,并且 Math 类中的所有方法都是类方法,都被static修饰,所以可以直接通过类名来进行方法调用。
6️⃣Math类常用方法Api
如下我来给大家普及一下Math类的常用方法。在日后的实际开发中,也是非常会遇到使用,虽然不要去必须掌握,但是起码知道该类提供这些方法就行。
- public static int abs(int a)
作用:返回参数a的绝对值。
- public static double ceil(double a)
作用:返回大于或等于参数a的最小(最接近负无穷大)double值。
- public static double floor(double a)
作用:返回小于或等于参数且等于数学整数的最大(最接近正无穷大)double值。
- public static int round(float a)
作用:按照四舍五入返回最接近参数a的整数。
- public static int max(int a,int b)
作用:返回两个int值中的较大值。
- public static int min(int a, int b)
作用:返回两个int值中的较小值。
- public static double pow(double a,double b)
作用:返回a的b次幂的值。
- public static double random()
作用:生成 [0.0, 1.0) 范围内的伪随机浮点数。
- 点赞
- 收藏
- 关注作者
评论(0)