static可以修饰成员方法,成员变量
//:Static.java
import java.io.*;
import java.util.*;
class A {
A() { System.out.println("A init"); }
}
class B {
static A a = new A();
static void f1() { System.out.println("f1"); }
}
class Static {
public static void main(String[] args) {
f2();
}
static B b = new B();
static void f2() { b.f1(); }
int nonStatic;
}
/// Output:
A init
f1
初始化顺序为
Static.b -> B -> A static作为类的绑定变量,它不随着类的实例初始化,而是作为类的一部分进行初始化,所以当要用类声明变量时,必须先初始化其中的static变量
这些是static修饰类中变量的,当它修饰类中方法时,这些方法就是所谓的类方法,他们可以通过“类名.方法名"进行调用,因为它们不随着实例存在,所以他们不使用
类中的非static变量!所以当Static.f2里使用nonStatic时,就会出错。