静态域
每个类中只有一个这样的域,而每个对象对于所有的实例域都有自己的一份拷贝.
例如,给每个雇员赋予唯一的标识码,这里给employee添加一个实例域ID和一个静态域nextid:
class Employee{
private static int nextId = 1
private int id ;
…
}
这时,这个类的所有实例都会有一个实例域id,但将共享同一个一个静态域nextid。
用一个简单地方法
public void setId(){
id = nextId;
nextId++;
}
这样,每个雇员的ID将唯一。
静态常量
在Math 中定义静态常量
public class Math{
…
public static final double PI = 3.141592653589;
…
}
在程序中可以直接采用Math.PI的形式来获得这个常量。
如果static关键字被省略,PI就成为了Math类的一个实例域,需要通过Math类的对象来访问PI,并且每个Math对象都有它的一份PI拷贝
静态方法
静态方法可以理解为没有this参数(即没有隐式参数的方法),例如Math.pow(x,a),在计算时,不使用任何Math对象。
注意:静态方法不能访问实例域,因为它不能操作对象。但是静态方法可以访问自身类中的静态域,例如:
public int getNextId(){
return nextId;
}
int n = Employee.getNextId();
总结,以下两种情况下需要使用静态方法:
- 一个方法所需参数都是通过显式参数提供(eg:Math.pow)
- 一个方法只需要访问类的静态域
来源:CSDN
作者:atoberocie
链接:https://blog.csdn.net/atoberocie/article/details/104457246