static 方法
。用 static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它, 所以在 static 方法中不可以访问非 static 成员,
。static 方法不再是针对于某个对象调用,所以不能访问非静态成员。而且对于 static声明的方法 并不需要对象来调用,可以直接使用 类名.static方法名(参数列表) 的方式来调用(该static方法中不可以有非static成员)。
。非 static 方法可以访问 static 成员(方法和变量),static方法 不可以访问 非static 成员,因为 非static 成员必须有对象被创建才能访问,而 static成员 属于类 可以直接用 classname. 的方式来访问
。 非静态方法必须创建对象才能访问非静态成员。静态方法可以不创建对象,直接访问静态成员,也可以通过创建对象来访问。
。static成员 随着类的产生而产生,而 非static成员 只有产生了对象才会产生,如果没有创建对象,则 非static 成员在内存中不存在,
。static方法中不可以有 this、super 关键字,
?什么时候需要定义 static 变量
。当对象中出现共享数据(而非属性)时,该数据被修饰为 static, 对象中的特有数据要定义成非静态
?什么时候需要定义 static 方法
。当方法内部没有访问到非静态数据
|