1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员,如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
public class TestStatic{
static int testData;
int data;
public static void test(){
TestStatic ts=new TestStatic();
System.out.println("静态变量:"+testData+","+"非静态变量:"+ts.data);
}
}
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。
static int testData;
int data;
public void test(){
System.out.println("静态变量:"+testData+","+"非静态变量:"+data);
}
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
注:程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。