class Demo
{
   void f()
   {
     static int x=10;
     static void g()
      {
        System.out.println();
      }
    }
}我的问题是成员函数内为什么不能定义静态方法还有变量?希望能详细一点最好不要说什么必须有了Demo的对象才能调用
f()的方法,而静态的可以直接用类名调用之类的,我是想知道它实质性的原因,如果是死的规定那就算了可能是新手还没有整明白。我就是转不过那个弯来。。

解决方案 »

  1.   

    LZ静态成员和方法都是相对与类说的(只能定义在类里)   写在方法里的是局部变量没有静态之分  
    void f()
    {
        void g()
        {
             System.out.println();
        }
    }方法里面不可以在定义方法了
      

  2.   

    class Demo
    {
    class Inner
    {
    static int x=10;
    }
    }
    那内部类里定义的变量属于局部变量还是成员变量呢 Inner不是也属于类吗?
      

  3.   

    還是與設計有關係,方法內變量的作用域被設定為local,生存期也是方法調用結束后而結束,勢必會與static的global作用域和長生存期相衝突