在普通成员方法中,可以直接访问同类的非静态变量和静态变量, 但是如果希望在静态方法中调用非静态变量,直接访问是不可行的,要通过创建类的对象,然后通过对象来访问非静态变量. 如下:
int a;
static int b;
public static void main(String[] args) { //main其实也是静态方法
demo howei= new demo();
int c=howei.a; }
其中c的值输出为0,这是因为成员变量若是定义而未初始化,则会自动赋值为0,但局部变量不会如此,如果不对其进行初始化,则会报错。
静态方法中可以直接调用同类中的静态方法,但不能直接调用非静态方法,需要通过对象来访问非静态方法,与调用非静态变量相类似。如下:
void ccc(){
System.out.println("11");
}
public static void main(String[] args) { //main其实也是静态方法
demo1 howei= new demo1();
howei.ccc(); //通过对象
}
总结:
普通方法可以直接调用静态变量与静态方法,而静态方法则要通过创建对象来调用成员变量和方法。