-
静态域&实例域
区别:静态域是共享的,实例域是每个对象独有的。如果User有1000个实例,那么都会共享这一个nextId,每个user的实例都有自己的id。即使没有实例,也仍然存在nextId。
public class User{ private static int nextId = 1; //静态域 private int id; //实例域 } -
静态常量
使用静态常量之后可以直接调用System.out,不需要先得到一个System类型的对象,然后再调用out
public final class System { ... public final static PrintStream out = null; ... } -
静态方法
-
不能直接访问非静态属性、非静态方法,只能调用静态属性、方法。
public static int getNextId(){ return nextId; //只能访问静态变量,不能访问id } -
可以这样调用:
法1:User.getNextId();
法2:得到User的一个对象user,调用user.getNextId();
-
什么时候使用static?
当一个类中没有属性,只有方法,可以将所有方法定义成静态方法,这样在调用方法的时候不需要实例化对象,可以直接调用。