static(静态)关键字
前言
static:是一个关键字,用于修饰成员变量和成员方法
一、static的特点:
-
被所有的对象所共享
-
可以使用类名调用
-
静态的加载优先于对象
-
随着类的加载而加载
二、 static的注意事项:
静态方法:
-
1、可以调用静态的成员变量
-
2、可以调用静态的成员方法
-
3、不可以调用非静态成员变量
-
4、不可以调用非静态成员方法
-
5、静态方法只能调用静态的成员
非静态方法:
-
1、可以调用静态的成员变量
-
2、可以调用静态的成员方法
-
3、可以调用非静态的成员变量
-
4、可以调用非静态的成员方法
-
静态的方法中是否有this这个对象?没有的
三、static的优点、缺点
优点:
- 对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份。
- 可以直接被类名调用,不用在堆内存创建对象。
- 自定义工具类
缺点:访问出现局限性。(静态虽好,但只能访问静态)
四、应用场景
–Math类的学习和使用
• Math 类包含用于执行基本数学运算的方法。数学操作常用的类。
• Math类的使用
//Math:包含了一些基本的数学运算方法,字段:PI
//static double PI 字段:PI
//System.out.println(Math.PI);
//static double abs(double a) :返回绝对值
//System.out.println(Math.abs(15.67));
//System.out.println(Math.abs(-0.10));
//static double ceil(double a) 天花板 向上取整
//System.out.println(Math.ceil(-2.1));
//System.out.println(Math.ceil(1.6));
//static double floor(double a) 地板 向下取整
//System.out.println(Math.floor(1.2));
//System.out.println(Math.floor(-1.6));
//static long round(double a) :四舍五入
//System.out.println(Math.round(-1.2));
//System.out.println(Math.round(1.6));
//static double max(double a, double b) :返回最大值
//System.out.println(Math.max(3, 4));
//static double pow(double a, double b) :返回第一个参数的第二个参数次幂
//System.out.println(Math.pow(3, 4));
//static double random() :返回一个随机数,大于零且小于一
System.out.println(Math.random());