- 静态成员 --- Static Fields
- 静态常量 --- Static Constant
- 静态方法 --- Static Methods
- 一个类只有这一个这样的成员实例, 直接用类名调用
- 即使没有对象实例, 静态成员也存在
Example: 给每个雇员产生unique ID
public void setId() {
id = nextId;
nextId++;
}
harry.id = Employee.nextId;
Employee.nextId++;
静态常量 — Static Constant
- 和静态成员一样, 只不过是常量
public class Math {
. . .
public static final double PI = 3.14159265358979323846;
. . .
}
Math.PI.
Another static constant that you have used many times is System.out. It is declared in the System class as follows:
public class System {
. . .
public static final PrintStream out = . . .;
. . .
}
静态方法 — Static Methods
- it is never a good idea to have public fields, because everyone can modify them.
- However, public constants (that is, final fields) are fine. Since out has been declared as final, you cannot reassign another print stream to it:
System.out = new PrintStream(. . .); // Error--out is final
- 静态方法跟类的对象没有关系, 不管有没有对象实例, 静态方法都存在. 也是直接用类名调用
- 静态方法不能使用非静态成员变量, 但是可以使用静态成员变量
什么时候使用静态方法:
- 当一个方法不需要使用对象的状态, 也就是所需的参数都是外部直接传入的, 比如:
Math.pow
- 当一个方法使用的都是静态成员变量时
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)