很早的时候学java看过静态方法与非静态方法的调用问题,随着时间的推移,对这个知识点又模糊起来了,今天捡起来,写篇文章大家一起看,先看代码:
public class StaticTest {
static int a = 1;
//静态方法可以调用静态变量
static int getA(){
return a;
}
//静态方法可以调用静态方法
static int getgetA(){
return getA();
}
//静态方法不能调用非静态成员(即非静态变量、非静态方法)但可以通过对方访问非静态成员
static void staticGetNormal(){
StaticTest test = new StaticTest();
int c = test.b;
test.getNormalA();
}
int b = 2;
//非静态方法可以直接访问静态成员与非静态成员
void getNormalA(){
int c = b;
int d = a;
getNormalA();
getA();
}
}
大家可以将代码赋值到eclipse或idea看有没有语法错误。
总之,静态方法可以访问静态成员,不可以访问非静态成员,但可以通过类的对象访问非静态成员。
而非静态方法可以直接访问静态成员与非静态成员。