Java中的静态域
说到静态域就不得不说实例域,何为实例域呢,简而言之就是对象中的数据,也可是说是对象中的属性,例如一个员工对象的名字,年龄等属性就是实例域。
public class People{
private String name;
…
}
例如上面的类,创建一个名为“张三”的人,再创建一个叫“李四”的人,这两个人就是基于这个类的两个实例对象,而“张三”“李四”分别就是这两个实例的实例域。
静态域也就是被定义为static的实例域。举个例子,有一个员工类,他有名字年龄等属性之外,还有一个饮水机的属性(每个公司应该都有饮水机吧),我们把这个饮水机的属性设置为static的,按照定义来看,他也就是一个静态域。但这个饮水机是公司的财产,所以不管有没有员工(也就是不管有没有创建具体的员工对象)那个饮水机都在那边,当公司成立(类被加载)就存在的东西。而且每个员工都可以使用,当员工A用了一半的水时,员工B所有的饮水机中的水也少了一半,也就是说当对象A更改了静态的属性,对象B的也跟着会被更改。此外办公室A的饮水机,办公室B的人也可以不通过办公室A的人使用(不同包下的类也可以访问静态域,通过类名.的方式运用,无需创建对象),但是如果办公室A禁止其他办公室的人过来倒水(将静态域设置为private的),那么其他办公室的人就不能访问了。
最后,静态域大家可以理解成事先准备好的公用的东西,但到底哪些人可以用还得类说了算。