java 静态域与静态方法

ぐ巨炮叔叔 提交于 2020-02-23 15:25:28

静态域

每个类中只有一个这样的域,而每个对象对于所有的实例域都有自己的一份拷贝.
例如,给每个雇员赋予唯一的标识码,这里给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)
  • 一个方法只需要访问类的静态域
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!