java中静态域,静态常量,静态方法

来源:互联网 发布:苹果频谱电脑软件 编辑:程序博客网 时间:2024/06/05 16:53
静态域:如果将类中的域定义为static,则这个域属于这个类,而不属于这个类的某个对象,每个类中只有 一个这样的域,而每一个类对象对于所有的实例域(即没有定义为static的域)都有自己的一份拷贝。例如:class Employee{  ……  private int id;  private static int nextId = 1;}如果有1000个Employee对象,则有1000个实例域id,但是只有一个静态域nextId;即使没有一个Employee对象,静态域nextId也存在,它属于类,不属于任何对象。静态域也成为类域。  静态常量:如果一个域被定义为static final,则这个域就是一个静态常量。不能省略任何一个关键字,若是少了static,则该域变成了一个实例域,需要由类对象对其进行访问。若是省略了final,则该域变成了静态域,静态方法可以对其进行修改。例子:public class Math{  ……  public static final double PI=3.14159265358979323864;  ……}其中PI就是一个静态常量。  静态方法:静态方法是一种不能向对象实施操作的方法。Math的pow方法就是一个静态方法,在运算时,不使用任何Math对象,换句话说,没有隐式的参数this。因为静态方法不能操作对象,所以不能在静态方法中访问实例域,但是静态方法可以访问自身类中的静态域。可以使用对象调用静态方法,但是这样容易引起混淆,因为计算的结果与对象毫无关系,建议还是使用类名,而不是类对象调用静态方法。例如:public static int getNextId( ){  return nextId;}但是,如果去掉其中的关键字static,它就成了非静态方法,但是也可以访问类中的静态域,这时就需要由该类的对象来调用该函数。在下面两种情况下使用静态方法:1.一个方法不需要访问对象的状态,其所需的参数都是通过显式的提供2.一个方法只需访问类的静态域
0 0