日期:2014-05-20  浏览次数:20688 次

关于静态方法的一个疑问
在静态方法中只能调用静态的方法和变量.但是下面这样的代码为什么能通过调试呢:
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()就不行
------解决方案--------------------
这个的意思是,在类中,静态方法只能调用静态的方法和变量,如果不是静态的,因为静态方法
属于类,而不属于对象,所以,如果你调用非静态的,怎么知道你是调用的哪个对象的非静态方法或
变量呢?所有对象是共享一个静态方法的,所以必须通过对象调用静态方法,或通过类名调用静态方法。
------解决方案--------------------
你这是通过对象调用的,不是直接调用 静态方法!