Math类、Random类

1、Math类

(1)直接使用,无需导包;

package java.lang;

 (2)final修饰的类,这个类不能被继承;

public final class Math{}

(3)private修饰构造器,即构造器私有化,不能创建Math类的对象;

 不能:

(4)Math内部的所有的属性、方法都被static修饰:则,类名. 直接调用,无需创建对象;

(5)常用方法;

代码示例:

package test6_Math_class;

public class Test1 {
    public static void main(String[] args) {
        //常用属性
        System.out.println(Math.PI);
        //常用方法
        System.out.println("随机数:"+Math.random());//范围[0.0, 1.0),注,右边取不到
        System.out.println("绝对值:"+Math.abs(-20));
        System.out.println("9.1向上取值:"+Math.ceil(9.1));
        System.out.println("9.9向下取值:"+Math.floor(9.9));

        System.out.println("3.3四舍五入:"+Math.round(3.3));
        System.out.println("3.5四舍五入:"+Math.round(3.5));

        System.out.println("5,10里大的为:"+Math.max(5, 10));
        System.out.println("6,9里小的为:"+Math.min(6, 9));
    }
}

(6)静态导入

代码示例:

package test6_Math_class;
//静态导入: ——  但是不建议用
import static java.lang.Math.*;

//想直接用Math类下的属性和方法,不加Math.  则需要静态导入,见上

public class Test2_static_import {

        public static void main(String[] args) {
            //常用属性
            System.out.println(Math.PI);
            //常用方法
            System.out.println("随机数:"+random());//范围[0.0, 1.0),注,右边取不到
            System.out.println("绝对值:"+abs(-20));
            System.out.println("9.1向上取值:"+ceil(9.1));
            System.out.println("9.9向下取值:"+floor(9.9));

            System.out.println("3.3四舍五入:"+round(3.3));
            System.out.println("3.5四舍五入:"+round(3.5));

            System.out.println("最大值、最小值:");
            System.out.println("5,10里大的为:"+max(5, 10));
            System.out.println("6,9里小的为:"+min(6, 9));
            //Math.max(2,4,7);//只能比较两个数
        }
        //如果跟Math中方法重复了,那么会优先走本类中的方法(就近原则)
        public static int random(){
            return 100;
        }
}

2、Random类

代码示例:

package test7_Random_class;

import java.util.Random;

public class Test1 {
    public static void main(String[] args) {
        //Math类中的random()方法
        //返回带正号的double值,该值大于等于0.0,且小于1.0
        System.out.println("生成随机数:"+Math.random());

        //但是生成随机数有一个单独的类 —— Random
        //学习Random类
        //(1)利用带参数的构造器创建对象: —— 用的比较少
        Random r1 = new Random(1111111L);
        System.out.println(r1);//java.util.Random@74a14482 ???
        int i = r1.nextInt(); //返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值。
        System.out.println("随机数1:"+i);//生成的随机数都是一样的

        //固定的种子seed产生固定的随机数,所以要改变:
        Random r2 = new Random(System.currentTimeMillis());
        //System.currentTimeMillis()返回的是当前时间距离1970年1月1号
        // 午夜00:00(零点)的时间差,以毫秒为单位(即是long型),所以seed的值是不确定的
        int j = r2.nextInt();
        System.out.println("随机数2:"+j);

        System.out.println(System.nanoTime());//每次都不一样?

        //表面是在调用无参数构造器,实际底层还是调用了带参构造器
        //(2)利用空参构造器 创建对象:
        Random r3 = new Random();
        System.out.println(r3.nextInt(10));
        //带参的nextInt()方法--返回伪随机的,均匀分布int值介于0(含)
        //和指定值(不包括),从该随机数生成器的序列绘制。

        System.out.println(r3.nextDouble());
        //返回下一个伪随机数,从这个随机数发生器的序列中 0.0和 1.0之间的 double值 0.0分布。
        //同Math.random一样了。
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值