文章目录
Ctrl+B进入Math源码
【一】直接使用,无需导包:
【二】final修饰类,这个类不能被继承:
【三】构造器私有化,不能创建Math类的对象:
报错:
【四】Math内部的所有的属性,方法都被static修饰:类名.直接调用,无需创建对象:
【五】常用方法:
public class Test01 {
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(-48));//48 绝对值
System.out.println("向上取值"+Math.ceil(9.1));//10.0 向上取整
System.out.println("向下取值"+Math.floor(9.9));//9.0 向上取整
System.out.println("四舍五入:"+Math.round(3.5));//4 四舍五入
System.out.println("取大的那个值"+Math.max(3, 6));//6
System.out.println("取小的那个值"+Math.min(3, 6));//3
}
}
【六】静态导入:
import static java.lang.Math.*;
public class Test01 {
public static void main(String[] args) {
//常用属性:
System.out.println(Math.PI);
//常用方法:
System.out.println("随机数:"+random());//[0.0,1.0)
System.out.println("绝对值"+abs(-48));//48 绝对值
System.out.println("向上取值"+ceil(9.1));//10.0 向上取整
System.out.println("向下取值"+floor(9.9));//9.0 向上取整
System.out.println("四舍五入:"+round(3.5));//4 四舍五入
System.out.println("取大的那个值"+max(3, 6));//6
System.out.println("取小的那个值"+min(3, 6));//3
}
//如果跟Math中方法重复了,那么会优先走本类中的方法(就近原则)
public static int random(){
return 100;
}
}
【七】Random类:
public class Test02 {
public static void main(String[] args) {
System.out.println("随机数:"+Math.random());//返回值为 double值为正号,大于等于 0.0 ,小于 1.0
//学习Random类
//(1)利用带参数的构造器创建对象:
Random r1=new Random(System.currentTimeMillis());
int i=r1.nextInt();
System.out.println(i);
//(2)利用空参构造器创建对象:
Random r2=new Random();//表面是在调用无参构造器,实际底层还是调用了带参构造器
System.out.println(r2.nextInt(10));//均匀分布 int值介于0(含)和指定值(不包括)
System.out.println(r2.nextDouble());//从这个随机数发生器的序列中 0.0和 1.0之间的 double值 0.0分布
}
}
内部调用: