Java主要方法被调用

时间:2014-10-17 16:42:32

标签: java methods

我可以和如何从Java中的其他方法调用main方法?请使用以下代码解释:

public class arraysAndMethods {

    public void printArray(double[] arr) { 
        int x = public arraysAndMethods.main(int[] studGrades);
        // pass array in main mehthod to other methods
        //int a=main(args[]);
        for (int i = 0; i < studGrades.lenght; i++)
            System.out.print(studGrades[i] + " ");
    }// end of printArray method
    public static void main(String args[]){


        java.util.Scanner input = new java.util.Scanner(System.in); // input scanner

        System.out.println("What is the size of the class?");
        int n = input.nextInt();

        double studGrades[] = new double[n];

        for (int i = 0; i < studGrades.length;i++) {
            System.out.println("What is the grade of student #" + (i+1));
            studGrades[i] = input.nextDouble();
        } // end of for loop


    }// end of main method
}//end of class

编辑后:

除了传递参数外,我已经弄明白了。我是否使用main的返回值?并且由于main的返回值是一个数组,main调用的参数是否应该有括号?这些括号之间应该有值吗?

public class arraysAndMethods {
    public void printArray(double[] arr) {
        int x = arraysAndMethods.main(double[i] arr);//error with paremeters
        for (int i = 0; i < studGrades.lenght; i++)
            System.out.print(studGrades[i] + " ");
    }// end of printArray method
    public static double[] main(String args[]){// double array
        java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
        System.out.println("What is the size of the class?");
        int n = input.nextInt();
        double[] arr = new double[n];// declare and initialize array to have n many elements
        for (int i = 0; i < arr.length;i++) {// input grades for each students
            System.out.println("What is the grade of student #" + (i+1));
            arr[i] = input.nextDouble();
        } // end of for loop
        return arr; 
    }// end of main method
}// end of class

3 个答案:

答案 0 :(得分:1)

从另一种方法调用main方法通常被认为是不好的编程习惯。这可能导致一系列问题,例如无限循环,无限递归等。您的主要方法应该包括程序运行所需的高级功能,您通常希望它尽可能简单。作为一种好的“检查”问我自己可以将这个功能变成自己独立的方法吗?如果是这样,为什么不这样做呢?然后,如果您需要再次拨打该电话,则可以使用单独的方法。

答案 1 :(得分:0)

是的,您可以从另一个方法调用main()方法。我在单元测试期间完成了这项工作,看看它是如何工作的。

由于main是静态方法,因此您需要调用

arraysAndMethods.main(/* parameters here */);

将模拟的“命令行参数”作为参数传入。

仅供参考,开始使用大写字母的类的名称是标准的Java实践。

答案 2 :(得分:0)

可以从另一种方法调用它。在printArray()(例如)中,您可以执行此操作:

String[] someArgs= new String[] {"monkey"};
arraysAndMethods.main(someArgs);

由于这是一个静态方法,arrayAndMethods类不必实例化。