public class drum {
public static void main(String []args){
boolean topHat = true;
boolean snare = true;

void playTophat(){
System.out.println("ding ding da-ding");
}
void playSnare(){
System.out.println("bang bang ba-bang");
}
                 下面代码省略了
                  
          }
为什么上面这种写法是错误的???最好能将以下原理,我是初学者。main里面可以写什么?不能写什么?但是下面这种写法是对的?
   public class drum {
 public static void main(String []args){          这中间写循环、if语句等等
          。。  }
    }

解决方案 »

  1.   

    方法的定义不能嵌套???  我不太理解您说的这句话,不好意思。能讲的更通俗易懂点吗? 我才学的java很多东西不是很了解
      

  2.   

    在JAVA 中  楼主记住:main()属于一种方法。。然后在java中,方法中不能去再写方法。。所以在java中不能在main()方法中再定义一个方法。。在方法中可以去定义变量  定义方法块。。
      

  3.   

     额这个我知道。因为写过代码,知道不能这些写。我就是想问一下,方法里面不能写方法是java规定的吗?  有没有什么原理可以解释说明下为什么不能这么写??
      

  4.   

    因为这个不是标准,一定这样做好,或者不好。
    例如在JavaScript中就可以在方法中定义方法,只是Java中规定不可以,记住就可以了。
      

  5.   

    这个是Java常识,你知道了就好,不要问为什么,非要问就是钻牛角尖。
    把时间精力去学其它新知识,以后回过头来看待这个问题你会有重新的见解的。
      

  6.   

    public class drum {
    public static void main(String []args){
    boolean topHat = true;
    boolean snare = true;
    playTophat();
    playSnare();
    }statc void playTophat(){
    System.out.println("ding ding da-ding"); 
    }
    statc void playSnare(){
    System.out.println("bang bang ba-bang");
    }
      

  7.   

    一个类中可以有多个方法,但一个方法体里是不能再定义另一个方法的。。这是JAVA规定的,照这么做就行了。
      

  8.   

    在一个类中可以定义多个方法,但一个方法体里是不能定义另一个方法的,这是JAVA自身规定的,记着就可以了。
      

  9.   

    从运行角度讲每个方法都有自己的方法栈,当return的时候弹栈,如果A方法里面定义了B方法,那么A方法的方法栈怎么分配?怎么入栈,弹栈,返回?
      

  10.   

    错了,是编译的时候,每个方法都被分配一个栈帧,里面有ESP,EBP,如果方法嵌套定义的话,ESP,EBP没办法分配吧。
      

  11.   

    因为main()本身就是一个方法,方法中不能再定义方法,
      

  12.   

    main方法属于静态方法...静态方法属于类不属于对象...所以在静态函数中不能定义函数...
      

  13.   

    方法里面不能定义其他的方法,只能调用,不能定义。class里面可以有内部类,但方法不行,main()也不例外。
      

  14.   

    main()本来就是一种方法,方法是不能嵌套的
      

  15.   


    main()本身也是一个方法
    所以不能在在main()里面定义方法
      

  16.   

    百度一下栈帧,也可以直接看C函数编译后的汇编代码。虽然学java,但是我觉得了解一下底层还是有必要的。
      

  17.   

    main  本身就是一个方法。方法不可以嵌套的
      

  18.   

    main方法是程序的入口,是程序的主方法
      

  19.   

    main方法是静态的,写在一个类里面就代表这个类是个启动类,方法只能够定义在类或者接口里面,这是JAVA的语法,不能在方法中再定义方法,人家的语法就是这么规定的,这好比说是java创造者的规则,其虚拟机编译的时候也是按照这个规则去编译,打破了人家的规则写出来的代码当然就不行了,因为编译器识别不了。
      

  20.   

    main()方法是入口方法.java写的方法是依赖c的思想。在方法中是不在嵌套方法,只能调用方法... 之也是和JVM有关。
      

  21.   

    1.方法里套方法,不符合面向对象的思想。
    2.类的描述定义在方法区,对象存储在堆区,每一个对象都有唯一一个对类型信息的引用。jvm遇到一个方法就会根据临时变量引用去找堆区对应对象,根据该对象到方法区找到该方法,将该方法压栈。执行完毕后弹栈。如果方法里套方法,遇到子方法,会再压栈,但无法找到对应对象了。
      

  22.   

    所有的方法里边都不能有方法,不能单说main()方法不行,这是java程序的基本语法,建议你好好看一下基础
      

  23.   

    从运行上来讲是可行的 从逻辑上来讲你要给它一个存在的理由   我们之所以写方法 是为了代码的重用性 和实现代码逻辑上分离(把专门的是给专门的对象)                main 方法是 是程序的主入口 他的意义在于 通过它来实现你想要的效果(控制层) 他只管调用就是了  其他的事交给其他的类就好了 这样的要改动的时候你只要解决的相应的类就行了 而不是全部都要动    .............. 试想一下  如果你整个 main 方法写完里全部代码 如果 出问题了岂不是找问题都要半天................剩下的我就不说了(个人观点........)
      

  24.   

    java语言就这么设计的,就不让这样写,对于说什么入栈什么的感觉胡扯,java中的for循环也属于一种方法吧?这个就能嵌套!!!只能说java不让你这样写,这样写编译前就会报错。