【问题标题】:why can't I create a method in the main method [duplicate]为什么我不能在主方法中创建方法[重复]
【发布时间】:2013-10-05 09:50:30
【问题描述】:

你好,我想把创建方法变成main? 所以这是我想要克里特方法的代码:

import  java.io.*;
import java.util.Random;
class input{
public static void main (String args[]){
 void Randomises() {
    int writabledata;
   Random a=new Random();
    writabledata=a.nextInt();

}
}}

【问题讨论】:

  • 你不能在方法中创建方法。这是规则。
  • 你不能在 Java 的方法中创建方法。
  • Java 规范与大多数其他语言一样
  • 你不能把方法放在其他方法里面。
  • @MrTi 从技术上讲,我们谈论的是方法内部的方法,而不是在方法内部创建的类内部的方法

标签: java oop


【解决方案1】:

Java 不允许在方法中创建方法。这是一般规则,并非特定于 main 方法。

【讨论】:

    【解决方案2】:

    也许您正在寻找的是在您的类中创建额外的静态方法:

    public final class MyCommand {
        private MyCommand() {
          //
        }
    
        private static void releaseTheCatsOfWar() {
            System.out.println("Meow!");
        }
    
        public static void main(String[] args) {
            releaseTheCatsOfWar();
        }
    }
    

    当然,这样做会更好:

    public final class MyCommand {
        private MyCommand() {
          //
        }
    
        private void releaseTheCatsOfWar() {
            System.out.println("Meow!");
        }
    
        public static void main(String[] args) {
            MyCommand that = new MyCommand();
            that.releaseTheCatsOfWar();
        }
    }
    

    【讨论】:

    • +1 获得一个很棒的方法名!
    【解决方案3】:

    您不能在 Java 的方法中创建方法。 您可以将它作为您的类的附加方法,并以main 的形式调用它。

    【讨论】:

      【解决方案4】:

      public static void main 不是一个类,它是一个类中的方法。而你的类是input(顺便说一下,你应该以大写字母开头类名,比如Input),在其中定义方法main,你的程序从该方法开始工作。

      【讨论】:

        【解决方案5】:

        虽然它完全没有意义,但您最接近实现结果的方法是:

        public class Main {
        
            private static interface MethodMaker{
        
                void randomise();
        
            }
        
            public static void main(String[] args) {
        
                MethodMaker methodMaker = new MethodMaker(){
        
                    @Override
                    public void randomise() {
                        // DO SOMETHING
        
                    }
        
                };
        
                methodMaker.randomise();
        
            }
        }
        

        【讨论】:

          【解决方案6】:

          您必须将方法放在 main 之外,然后在 main 中调用它,如下所示:-

          import  java.io.*;
          import java.util.Random;
          class input{
            public static void main (String args[]){
          
                          Randomises();
          
            }
          
            public void Randomises() {
              int writabledata;
              Random a=new Random();
              writabledata=a.nextInt();
          
                 }
          
           }
          

          【讨论】:

          • 为此,Randomises 需要是静态的。
          猜你喜欢
          • 2013-11-06
          • 2018-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-14
          • 2011-01-24
          • 1970-01-01
          相关资源
          最近更新 更多