Java零基础入门-Number & Math 类

举报
喵手 发表于 2025/01/31 23:38:30 2025/01/31
【摘要】 ​一、概述        在日常使用java进行项目开发的过程中,经常会遇到要使用对象而不是内置数据类型的场景,那么基于这类场景,我们应该如何去解决呢?需要使用基本教学运算时又该如何去使用?所以今天我要给大家带来的内容就是有关于它的,具有很好的参考价值。        废话不多说,咱们直接步入正题吧。二、本期教学目标掌握内置数据类型掌握Number抽象类掌握Number子类理解装箱 | 拆箱...

一、概述

        在日常使用java进行项目开发的过程中,经常会遇到要使用对象而不是内置数据类型的场景,那么基于这类场景,我们应该如何去解决呢?需要使用基本教学运算时又该如何去使用?所以今天我要给大家带来的内容就是有关于它的,具有很好的参考价值。

        废话不多说,咱们直接步入正题吧。

二、本期教学目标

  • 掌握内置数据类型
  • 掌握Number抽象类
  • 掌握Number子类
  • 理解装箱 | 拆箱概念
  • 掌握Math类
  • 了解Math类的常用方法Api
  • ...

三、正文

1️⃣内置数据类型

        通常,我们在使用数字时,我们都可能都使用内置的数据类型,比如:int、long、float、double等,具体使用比如:

        int a = 1;
        float b = 13.1f;
        double c = 1.21;
        byte d = 1;

        对于基本数据类型的使用,这在日常开发中都很常见,对吧,但是对于某些场景,就得使用到其对应的封装类,为了解决这个问题,其实java有提供一整套数据类型封装类,其中就有(Integer、Long、Byte、Double、Float、Short)等。

具体对于关系请看如下:

2️⃣Number抽象类

        对于数值类型,比如byte、short、integer等,他们的父类都是Number类(抽象类),位于java.lang包。具体可以看下如下示意图:


        对于抽象类而言,不能直接被实例化,要实例化其具体的子类才行。但子类等可以使用父类的所有方法。而且为Number的子类有提供将表示的数值转换为对于基础数据类型的方法,共有6个,比如对于int ,有intValue()方法,返回一个int类型的值,再比如double Double(),返回一个double类型的数值类型。代码演示:

        Number num = new Double(13.14);
        System.out.println("返回 double 类型的值:" + num.doubleValue());
        System.out.println("返回 int 类型的值:" + num.intValue());

执行结果如下:

        明显可以看到该被实例化的num,可以有各种方法

3️⃣Number子类

        对于Number类,它拥有如下六种子类,具体如下:Double、Float、Byte、Short、Integer 以及 Long,抽象类它不能直接被实例化,只能实例化其具体的子类。

        因此,这里会有个概念出现,具体示例请看如下:

        Integer e = 520;
        int sum = e+1;
        System.out.println(sum);

        可想而知,输出值肯定是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) 范围内的伪随机浮点数。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。