分两种情况来了解;
static修饰成员变量时,该变量属于类变量;什么时候适合用它来修饰成员变量呢?当一个数据具有共享性质的时候就应该考虑使用;也可以理解数据具有聚合性,例如公司的部门名称,它是相对于部门成员共享的,部门成员聚合在一起形成了这个部门;
static修饰成员方法时,该方法属于类方法;要注意该方法只能调用静态成员变量,非静态成员变量是无法调用的;为什么呢?因为
static修饰的成员变量与static修饰的成员方法先存在于JVM的静态区,当main方法开始运行时它们就存在了,那静态方法如何知道后来有什么呢?又不能未卜先知,所以它只能用静态变量,这也是为什么调用非静态成员方法时需要new一个对象的原因,这就是告诉main方法有这个东西了;一句话,先存在的无法知道后存在的,后存在的可以知道先存在的。所以非静态的方法是可以使用静态成员变量的;
何时使用static修饰方法呢?
看方法使用了静态成员变量没,如果用了就用static;
方法中没使用非静态成员变量的用static;