当前位置: 代码迷 >> J2SE >> 新手没多少分给,还是希望高手能进来指导一下。解决思路
  详细解决方案

新手没多少分给,还是希望高手能进来指导一下。解决思路

热度:118   发布时间:2016-04-24 01:17:37.0
新手没多少分给,还是希望高手能进来指导一下。
class Demo
{
  void f()
  {
  static int x=10;
  static void g()
  {
  System.out.println();
  }
  }
}

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

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

方法里面不可以在定义方法了
------解决方案--------------------
探讨

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

方法里面不可以在定义方法了

------解决方案--------------------
首先方法里面不能定义方法,方法只能定义在类里面,方法与方法之间是调用与被调用关系!
其次,楼主对于方法里面不能定义静态变量的问题,楼主不防这样想,方法里面的变量是私有变量,只有方法内部才能访问的,方法外部是访问不到的,而静态变量在内存中是只有一份的,可以理解为公共的,那么假如方法内部可以定义静态的变量,那么这个变量是公共的还是私有的呢?这是不是相互矛盾呢?
最后,希望我的回答能帮到楼主!
------解决方案--------------------
探讨
引用:

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

方法里面不可以在定义方法了

class Demo
{
class Inner
{
static int x=10;
}
}
那内部类里定义的变量……
  相关解决方案