2 zyf4005 zyf4005 于 2016.04.23 15:55 提问

java中非static方法内部能否嵌套非static方法?

class NiMingLei
{
public static void main(String[] args)
{
Outer a= new Outer();
a.function();
}
}

class Outer
{
static int y=4;
void function()
{
void show()
{
System.out.println(123);
}

  class Inter
  {
     void method()
      {
        System.out.println(234);
     }  

  }
  new Inter().method();

}

}

NiMingLei.java:15: 错误: 非法的表达式开始
void show()
^
NiMingLei.java:15: 错误: 需要';'
void show()
^
2 个错误

6个回答

w172087242
w172087242   Ds   Rxr 2016.04.23 18:17
已采纳

语法是有问题的,一个方法可以发起对另外一个方法的调用,但是一个方法不能嵌套一个方法,这个和javascript是有区别的。

void methodA(){
System.out.println("我要调用B方法了");
methodB();
}
void methodB(){
System.out.println("我是B方法");
}
这样就是正确的。

如果:
void methodA(){
System.out.println("我要调用B方法了");
void methodB(){
System.out.println("我是B方法");
}
}
这样在A方法中嵌入B方法的形式就是错误的。

zyf4005
zyf4005 谢谢!
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.23 19:36

你需求描述有问题,不能方法嵌方法,只有方法掉用方法的。

zyf4005
zyf4005 谢谢!
一年多之前 回复
q610098308
q610098308   2016.04.23 21:23

你可以这么写,感觉你对C系列语言不熟悉
class NiMingLei
{
_ /////////////////////////////////////// _ static int yy = 4;//也可以在这里声明,初始化;

public static void main(String[] args)
{

class Inter {
void method() {
System.out.println(234);
}

    }
    class Outer {
        private final static int y = 4 ;

        void function() {
            new Inter().method();
        }

        void show() {
            System.out.println(123);
        }

    }

    Outer a = new Outer();
    a.function();

    }
    }
zyf4005
zyf4005 谢谢!
一年多之前 回复
u010388846
u010388846   2016.04.23 15:59
alert('检测是否存在xss漏洞')
zyf4005
zyf4005 不懂
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.23 16:02

java中static的使用方法
Java中常用的内存区域 及其 static 方法的调用
java - final与static方法
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

fubo1990
fubo1990   2016.04.23 17:02

static 方法必须调用static的方法。非static方法中可以调用非static方法

zyf4005
zyf4005 谢谢!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!