静态域
class Employee {
private static int nextId = 1;
private int id;
}
‘如果将域定义为static,每个类当中只有一个这样的域。而每一个对象对于所有对象所有的实例域却都有自己的一份拷贝’。如果我实例化了一千个Employee对象,里面就有一千个不同的id,而nextId却还是共享同一个,这就是静态域,所以这种静态域,所以配合上static,就可以有静态变量,静态方法,还有静态常量。
1.静态常量
上一个demo就是静态变量的用法,但是实际场景中静态变量用的非常少,而静态常量用的比较多:
public static final String URL = 'http://www.balabala.com'; //随便敲得,这要是敲进什么非法网站我可不负责
往往就是先定义这样的一个变量,然后在外部或者内部的方法使用即可
2.静态方法
书中的解释是‘静态方法是一种不能向对象实施操作的方法’(讲道理完全没看懂这句话什么意思),但是通过后面的代码理解来看,其实静态方法,就是可以不需要new去实例化这个方法也可以直接使用的方法。
class Employee {
private static int nextId = 1;
private int id;
public static int getNextId(){
return nextId;
}
}
Employee.getNextId();
这里这个方法可以访问静态变量nextId,但是确不能访问id(为什么?不要问我为什么,这些就是java设定的语法啊),这个教程开始的第一个demo用的main方法就是一个静态方法,每一个类只能有一个main方法。