关于静态方法的一个疑问
在静态方法中只能调用静态的方法和变量.但是下面这样的代码为什么能通过调试呢:
class StaticTest
{
void display()
{
System.out.println( "a non_static method ");
}
pubic static void main(String[] args)//静态方法
{
StaticTest s=new StaticTest();
s.display();//调用了非静态方法
}
}
为什么在静态方法中可以调用这种非静态方法呢?
------解决方案--------------------s是一个对象了~
------解决方案--------------------你如果直接display()或StaticTest.display()就不行
------解决方案--------------------这个的意思是,在类中,静态方法只能调用静态的方法和变量,如果不是静态的,因为静态方法
属于类,而不属于对象,所以,如果你调用非静态的,怎么知道你是调用的哪个对象的非静态方法或
变量呢?所有对象是共享一个静态方法的,所以必须通过对象调用静态方法,或通过类名调用静态方法。
------解决方案--------------------你这是通过对象调用的,不是直接调用 静态方法!