1、静态字段
如果将一个字段定义为static,每个类只有一个这样的字段。
class Employee {
private static int nextId = 1; // 不论有多少个对象,他们都共享这个字段
private int id; // 每个对象都会有一个id
}
2、静态常量
同时具有static和final的特点 https://www.cnblogs.com/pandam/p/10965616.html
关于静态先于对象的解释 http://bbs.itheima.com/forum.php?mod=viewthread&tid=171962
3、静态方法
- 静态方法是不在对象上执行的方法,例如
Math.pow(x, a)
- 静态方法没有this参数方法,不能访问实例字段,不能在对象上执行操作
- 可以访问静态字段;要访问非静态字段可以通过构建类对象访问
public static int getNextId(){
return nextId;
}
int n = Employee.getNextId();
- 什么时候使用静态方法:
- 方法所有参数都通过显式参数提供 (显式参数:https://www.jianshu.com/p/4aa648e19b5a)
- 方法只需要访问静态字段
- 不能调用非静态方法,但是可以通过对象访问
- 普通的方法中,可以直接访问同类中的非静态变量和静态变量
更多解释:静态变量、静态方法 https://www.cnblogs.com/liuzeyu12a/p/10341348.html
4、静态工厂方法
- 可以用来构造对象,比如
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
NumberFormat percentFormatter = NumberFormat.getPercentInstance();
- 可以给构造器赋予不同的名字
- 可以构造出不同类型的对象
网友评论