本帖最后由 依然超级赛亚人 于 2014-7-27 14:38 编辑
那个......非静态方法本来就可以访问非静态和静态两类方法(也可以访问静态以及非静态变量),而静态方法只能访问静态方法(以及静态变量)。你可能是表达错了你的意思,大概是要问如何用静态方法访问非静态方法吧?如果是的话看如下陈述以及代码,不是的话直接忽略!
要用静态方法访问非静态的东西,你可以创建包含这个非静态的成员的类的对象,用对象调用就可以了,最简单的就是你所知道的测试类中的main方法就是静态的:public static void main(String[] args).它如果要访问非静态就得通过创建对象以后调用,你仔细想想是这么回事吗?看下面这点代码:
class JingTai
{
public static void main(String[] args)
{
show();
}
public static void show(){//show()用了static修饰,main方法可以访问。
System.out.println("Hello World!");
}
}
要是下面这段代码就会报错,区别就在于把show()的static去掉了,它不是静态,main方法不能直接访问,你可以验证试试。
class JingTai
{
public static void main(String[] args)
{
show();
}
public void show(){
System.out.println("Hello World!");
}
}
就如刚才所说,非要用静态访问非静态,怎么办?创建包含该非静态方法的那个类的对象,然后进行调用就可以了,再看下面这段代码:
class JingTai
{
public static void main(String[] args)
{
JingTai jt = new JingTai();
jt.show();
}
public void show(){
System.out.println("Hello World!");
}
}
刚才的那个非静态方法show()和main方法都在类"JingTai"中,那么我们创建它的对象后在main方法(静态)中调这个非静态show()就可以了,你同样可以试试。
>>>说的有点多,希望有用! |