我们都知道,静态
static
方法中不能调用非静态non-
static
方法,准确地说是不能直接调用non-
static
方法。但是可以通过将一个对象的引用传入
static
方法中,再去调用该对象的non-
static
方法。
其实这个事实的应用很经常,以至于我们不去重视:在主函数(
static
方法)中我们经常创建某个类的实例,再利用其饮用变量调用它的非静态方法
public
class
StaticMethodTest
{
public
void
NonStaticMethod(){
System.out.println(
"这是非静态方法"
);
}
public static
void
StaticMethod(StaticMethodTest s){
System.out.println("这是静态方法");
s.NonStaticMethod();
}
public
static
void
main(String[] args) {
StaticMethodTest sObj=
new
StaticMethodTest();
StaticMethod(sObj);
//在主函数中可以直接调用静态方法
}
}